ในบทความที่ดีอื่นการแก้ไขปัญหา: การเชื่อมต่อกับ 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) กำหนดสิทธิ์ให้กับฐานข้อมูลเฉพาะตามความจำเป็น