ไม่สามารถเพิ่มผู้ใช้ไปยังบทบาทดูแลระบบใน SQL Server


9

ฉันใช้ SQL Server 2008 Management Studio บัญชีเข้าสู่ระบบปัจจุบันเป็นของกลุ่มผู้ดูแลระบบภายในเครื่อง ฉันกำลังใช้โหมด Windows Integrated Security ใน SQL Server 2008

ปัญหาของฉันคือหลังจากล็อกอินเข้าสู่ SQL Server Management Studio ฉันเลือกชื่อล็อกอินของฉันภายใต้ความปลอดภัย / การเข้าสู่ระบบจากนั้นเลือกแท็บบทบาทเซิร์ฟเวอร์จากนั้นเลือกรายการสุดท้าย - ดูแลระบบเพื่อให้ตัวเองเป็นสมาชิกกลุ่ม / บทบาทนี้ มีสิทธิ์ไม่เพียงพอ ความคิดใด ๆ ที่ผิดปกติ? ฉันคิดว่าผู้ดูแลระบบในพื้นที่ควรจะทำอะไรก็ได้ :-)


นี่คือสิ่งที่ไมโครซอฟท์จัดหาเกี่ยวกับปัญหานี้: msdn.microsoft.com/en-us/library/dd207004.aspxฉันสามารถแนะนำสคริปต์นี้: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

คำตอบ:


6

การเข้าสู่ระบบของเซสชันที่คุณพยายามตั้งค่าการอนุญาตต้องมีการอนุญาต

ดังนั้นข้อมูลเข้าสู่ระบบที่คุณใช้เป็นผู้ดูแลระบบท้องถิ่นใช่ไหม ซึ่งหมายความว่ากลุ่มผู้ดูแลระบบท้องถิ่นไม่มีสิทธิ์เพียงพอ

GUI ที่จะทำงานนี้มากเกินไปsp_addsrvrolemember แม้ว่าสิ่งนี้จะบอกว่า

ต้องเป็นสมาชิกในบทบาทที่สมาชิกใหม่จะถูกเพิ่ม

ดังนั้นกลุ่มผู้ดูแลระบบท้องถิ่นไม่ได้เป็นสมาชิกของดูแลระบบ

แก้ไข:

วิธีแก้ปัญหา: ใช้ล็อกอินที่มีสิทธิ์ คุณสามารถค้นหาได้โดยใช้sp_helpsrvrolemember


คุณมีคำแนะนำให้แก้ปัญหาของฉันอย่างไร
George2

ไม่แน่ใจว่าจะเดินหรือแก้ไขปัญหาใด ๆ โดยไม่ต้องติดตั้ง SQL Server 2008 ทั้งหมดอีกครั้ง! :-(
George2

"ใช้ข้อมูลเข้าสู่ระบบที่มีสิทธิ์" - ฉันจะดูรายการเข้าสู่ระบบที่มีสิทธิ์เพียงพอได้อย่างไร
George2

ขอบคุณฉันพบว่ามีเพียงสมาชิกที่อยู่ในรายการจาก EXEC sp_helpsrvrolemember 'sysadmin' ชื่อ sa เป็นผู้ใช้ Windows หรือไม่ ฉันไม่พบผู้ใช้ดังกล่าวจากรายการผู้ใช้ Windows ความคิดใด ๆ
George2

1
เป็นการลงชื่อเข้าใช้ SQL ที่สงวนไว้ไม่ใช่ผู้ใช้ Windows ในการทดสอบของฉันติดตั้ง SQL 2008 บัญชีที่ติดตั้ง SQL Server อยู่ในรายการ
gbn

4

ในบทความที่ดีอื่นการแก้ไขปัญหา: การเชื่อมต่อกับ SQL Server เมื่อผู้ดูแลระบบถูกล็อกเอาต์ผู้เขียนบอกเราว่าสิ่งที่เราต้องทำเพื่อให้สามารถควบคุม SQL Server ของเราได้คือ

"เริ่มต้นอินสแตนซ์ของ SQL Server ในโหมดผู้ใช้คนเดียวโดยใช้ตัวเลือก -m หรือ -f สมาชิกของกลุ่มผู้ดูแลระบบภายในเครื่องคอมพิวเตอร์ใด ๆ สามารถเชื่อมต่อกับอินสแตนซ์ของ SQL Server ในฐานะสมาชิกของบทบาทเซิร์ฟเวอร์ถาวร sysadmin "

น่าเสียดายที่ความหมายของการเริ่มต้นในโหมดผู้ใช้คนเดียวไม่ใช่เรื่องง่าย อย่างน้อยในประสบการณ์ของฉันการเป็นสมาชิกในกลุ่มผู้ดูแลระบบภายในคอมพิวเตอร์ของฉันไม่ได้ให้สถานะดูแลระบบกับบัญชี "ผู้ใช้" ของฉัน

เรื่องนี้เริ่มขึ้นเมื่อต้องจัดการปัญหาการเป็นสมาชิกในโดเมนของฉันโดยเซิร์ฟเวอร์ที่ไม่ใช่ DC (เนื่องจากการเปลี่ยน ISP) ฉันสร้าง DC ลงใน Windows Server 2008 R2 ใหม่ตั้งแต่ปี 2551 ซึ่งได้แก้ไขปัญหาเล็ก ๆ น้อย ๆ สองอย่าง แต่ไม่ได้แก้ไข คำถามของการเป็นสมาชิกโดยเซิร์ฟเวอร์ที่ผิดพลาด ใช้การแก้ไขที่แนะนำใน ServerFault เพื่อให้บรรลุผลนั้น (ในกรณีของฉันมันเป็นเรื่องของการรีเซ็ต winsock และ tcpip)

SQL Server 2008 ตั้งอยู่บนเซิร์ฟเวอร์ตัวที่สองซึ่งตอนนี้เป็นสมาชิกของโดเมน นี่คือปัญหา ในฐานะที่มีคนชี้ให้เห็นใน ServerFault มันเป็นเรื่องธรรมดาที่จะผลักดัน "ให้ผู้ใช้ปัจจุบันกลายเป็นดูแลระบบ" เมื่อติดตั้ง Server 2008 ร่วมกันยังไม่พิจารณาคนอื่น เนื่องจากข้อมูลเฉพาะตัวผู้ใช้นั้นเป็นสมาชิกโดเมนของโดเมนที่ไม่มีอยู่อีกต่อไปจึงไม่มีใครได้รับอนุญาตให้ดูแล SQL Server

ฉันเข้าสู่ระบบในฐานะผู้ดูแลระบบเซิร์ฟเวอร์ภายในที่ติดตั้งเมื่อ SQL Server ติดตั้ง แต่สิ่งนี้ทำให้ฉันสามารถเข้าถึง Management Studio ได้ฉันค้นพบอย่างรวดเร็วว่า BUILTIN \ Administrators มีบทบาทเซิร์ฟเวอร์ "สาธารณะ" เท่านั้น

หลังจากการวิจัยและการทดลองมากฉันเกิดขึ้นกับบทความที่ให้ข้อมูลเฉพาะเกี่ยวกับการเข้าสู่ระบบแบบผู้ใช้คนเดียวhttp://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

ในการเตรียมที่จะทำตามขั้นตอนนี้คุณต้องปิดเซิร์ฟเวอร์ SQL (ซึ่งเรียกใช้ตามค่าเริ่มต้นในกรณีส่วนใหญ่) ใช้ตัวจัดการการกำหนดค่า SQL เพื่อหยุด "SQL Server"

จากนั้นในพรอมต์คำสั่งนำทางไปยังตำแหน่งไฟล์โปรแกรมนั้น (หรือเทียบเท่ากับเครื่องของคุณ) และออกคำสั่ง "sqlservr.exe -m" หากคุณเห็นกระแสของกิจกรรมที่บันทึกไว้ในพรอมต์คำสั่งของคุณแสดงว่าคุณประสบความสำเร็จ หากไม่สามารถเริ่มต้นได้แสดงว่าคุณอาจมี SQL Server ทำงานอยู่แล้ว ปิดมันลง

อนุญาตให้อินสแตนซ์ผู้ใช้รายเดียวแนบฐานข้อมูล เมื่อกิจกรรมการบันทึกหยุดลงให้เปิด Studio จัดการ คุณจะอยู่ในโหมดผู้ใช้คนเดียวโดยอัตโนมัติดังนั้นบัญชีใด ๆ ก็ตามที่คุณเป็นตัวแทนจะเป็น sysadmin ใช้พลังงานนั้นเพื่อปรับการเข้าสู่ระบบความปลอดภัยและบทบาทเซิร์ฟเวอร์

ในกรณีของฉันฉันต้องสร้างบัญชีโดเมนในโดเมนใหม่จากนั้นลบเนมของพวกเขาใน SQL Server และสร้างใหม่ (เนื่องจากสถานการณ์ SID / GUID) กำหนดสิทธิ์ให้กับฐานข้อมูลเฉพาะตามความจำเป็น


นอกจากนี้ยังมีอีกวิธีในการตั้งค่าพารามิเตอร์: เปิดบริการผู้จัดการเลือกบริการแล้วเลือกคุณสมบัติจากเมนูคลิกขวา ในแท็บทั่วไปจะมีการแก้ไข "พารามิเตอร์เริ่มต้น" พิมพ์พารามิเตอร์ที่ต้องการที่นั่น จากนั้นเริ่มบริการโดยใช้ปุ่มเริ่มต้นในหน้านั้นพารามิเตอร์ที่ตั้งไว้มีไม่ถาวรและใช้ได้เฉพาะเมื่อเริ่มบริการจากกล่องโต้ตอบคุณสมบัติ
ldsandon

3

SQL Server 2008 ไม่ได้เพิ่ม BUILTIN \ Administrators อีกต่อไปในฐานะสมาชิกของบทบาทเซิร์ฟเวอร์ถาวร sysadmin

นั่นเป็นความจริง แต่ในกรณีนี้คุณสามารถกู้คืนจากสถานการณ์นั้นที่เริ่มบริการเซิร์ฟเวอร์ SQL ในโหมดผู้ใช้รายเดียว (โหมดฉุกเฉิน) และผู้ดูแลระบบในพื้นที่จะสามารถเข้าสู่ระบบได้

ดูMSDN


2

โดยค่าเริ่มต้น SQL จะเพิ่มกลุ่ม BUILTIN \ Administrators ในบทบาท sysadmin ซึ่งหมายความว่าผู้ดูแลระบบ NT ท้องถิ่นใด ๆ จะเป็นระบบดูแลระบบ SQL โดยอัตโนมัติ ใน Vista เนื่องจาก UAC คุณต้องทำงานในโหมด 'เป็นผู้ดูแลระบบ' เพื่อรับสิทธิประโยชน์นี้

  • หากคุณอยู่บน Vista ให้เรียกใช้เครื่องมือไคลเอ็นต์ (SSMS) 'ในฐานะผู้ดูแลระบบ' จากนั้นลองเพิ่มตัวคุณเองเป็น sysadmin
  • หากกลุ่ม BUILTIN \ Administrators ถูกลบออกจากบทบาทดูแลระบบโดยไม่ตั้งใจคุณจะต้องลงชื่อเข้าใช้ด้วยข้อมูลเข้าสู่ระบบดูแลระบบอื่น หากไม่มี eisadmin อื่น ๆ ที่เข้าสู่ระบบคุณต้องเข้าสู่ระบบด้วยการรับรองความถูกต้องของ SQL เป็น sa และใช้รหัสผ่าน sa ที่ตั้งค่าระหว่างการติดตั้ง เมื่อเข้าสู่ระบบในฐานะสมาชิกของดูแลระบบโฆษณา BUILTIN \ Admisnitrators กลับไปที่บทบาทดูแลระบบ หากการเข้าสู่ระบบ SQL นั้นถูกปิดใช้งานแสดงความยินดีคุณเพียงล็อคตัวเองออกจากการติดตั้ง SQL
  • หากกลุ่ม BUILTIN \ Administrators ถูกลบออกโดยเจตนาจากบทบาทดูแลระบบ (ตามKB932881 ) แสดงว่าคุณพยายามแฮ็คเข้าสู่ระบบคุณไม่ได้รับอนุญาต

สวัสดีรีมัสฉันสับสนว่าระหว่างกระบวนการติดตั้งฉันไม่ได้ตั้งค่ารหัสผ่านสำหรับ sa มีรหัสผ่านเริ่มต้นหรือไม่
George2

ความสับสนอีกอย่างคือจากการรันโพรซีเดอร์ร้านค้า sp_helpsrvrolemember เพื่อค้นหาผู้ใช้บทบาท sysadmin ทั้งหมดที่แสดงเฉพาะ sa ไม่มีผู้ใช้อื่นจากกลุ่มผู้ดูแลระบบภายในเครื่องความคิดใด ๆ
George2

ไม่มีรหัสผ่านเริ่มต้นสำหรับ sa รหัสผ่านของ sa ถูกตั้งค่าในระหว่างการติดตั้งหากเปิดใช้งานการรับรองความถูกต้องแบบผสม คุณจะต้องขอให้ผู้ดูแลระบบฐานข้อมูลของคุณอนุญาตให้คุณเข้าถึงหากคุณต้องการ
Remus Rusanu

"ถ้าการล็อกอิน SQL ถูกปิดใช้งานแสดงความยินดีคุณเพียงล็อคตัวเองออกจากการติดตั้ง SQL" ในกรณีดังกล่าวให้ดูคำตอบของ Jordi ด้านล่างเพื่อเริ่ม SQL Server ในโหมดผู้ใช้รายเดียว
Michiel van Oosterhout

1

โดยค่าเริ่มต้น SQL Server 2008 จะไม่เพิ่ม BUILTIN \ Administrators อีกต่อไปในฐานะสมาชิกของบทบาทเซิร์ฟเวอร์ถาวร sysadmin เมื่อคุณผ่านตัวติดตั้งมันจะถามว่าบัญชีหรือบัญชีใดควรมีสิทธิ์ดูแลระบบ มีปุ่มซึ่งโดยทั่วไปบอกว่า "ทำให้ฉันดูแลระบบ" ซึ่งจะเพิ่มบัญชีของผู้ใช้ที่ทำการติดตั้งเป็นดูแลระบบ

หากพวกเขาไม่ได้เพิ่มผู้ใช้อื่น ๆ เป็น sysadmins เฉพาะผู้ใช้นั้นเป็น sysamdin ในปัจจุบัน คุณจะต้องมีบุคคลนั้นเข้าสู่ระบบ SQL Server และให้สิทธิ์ระบบฐานข้อมูล DBAs


0

ฉันครุ่นคิดเรื่องเดียวกันหลังจากการติดตั้งใหม่จนกระทั่งฉันลงทะเบียนเซิร์ฟเวอร์ใน SQL Server 2008 แล้วทุกอย่างเป็นไปตามที่ควรจะเป็น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.