วิธีรีเซ็ตรหัสผ่าน SA บน Microsoft SQL Server
ในบทความนี้ เราจะดูวิธีรีเซ็ตรหัสผ่าน SA (ผู้ดูแลระบบ) ใน Microsoft SQL Server 2019/2017/2014/2012 คู่มือนี้จะช่วยคุณกู้คืนการเข้าถึงฐานข้อมูล MSSQL หากคุณไม่สามารถรับรองความถูกต้องโดยใช้
saบัญชี (ธ
saรหัสผ่านถูกลืม/สูญหาย/บัญชีถูกปิดใช้งาน) หรือในฐานะผู้ใช้ Windows (หากไม่มีผู้ใช้ที่มีสิทธิ์ดูแลระบบ MS SQL)
sa ในเครื่องเป็นบัญชีการดูแลระบบที่รู้จักกันดีใน SQL Server ในกรณีส่วนใหญ่จะปิดใช้งาน แต่คุณสามารถเปิดใช้งาน ตั้ง/รีเซ็ตรหัสผ่าน และกู้คืนการเข้าถึง SQL Server ของคุณได้
หากต้องการกู้คืนการเข้าถึงฐานข้อมูลโดยไม่ต้องติดตั้งอินสแตนซ์ MS SQL ใหม่ทั้งหมด (และเมื่อฐานข้อมูล หลัก สูญหาย) คุณต้องเริ่ม SQL Server ในโหมดผู้ใช้คนเดียว . ในโหมดนี้ คุณสามารถเข้าสู่ระบบ SQL Server ภายใต้บัญชีใดก็ได้ที่มีสิทธิ์ของผู้ดูแลระบบภายในบนคอมพิวเตอร์ที่ติดตั้ง MS SQL Server จากนั้น คุณสามารถรีเซ็ตรหัสผ่านบัญชี sa และ/หรือให้สิทธิ์ผู้ดูแลระบบแก่บัญชี Windows ที่ต้องการได้
เคล็ดลับ เริ่มต้นด้วย SQL Server 2008 บทบาทการดูแลระบบบนเซิร์ฟเวอร์ SQL จะไม่ถูกกำหนดโดยค่าเริ่มต้นให้กับกลุ่มผู้ดูแลระบบ Windows ภายในเครื่อง
ในการเรียกใช้ MS SQL Server ในโหมดผู้ใช้คนเดียว ให้ลงชื่อเข้าใช้โฮสต์ MSSQL ภายใต้บัญชีใดก็ได้ที่มีสิทธิ์ผู้ดูแลระบบใน Windows
หยุดอินสแตนซ์ SQL Server (ในตัวอย่างของเรา ชื่ออินสแตนซ์ MSSQL คือ MSSQLSERVER) จากพรอมต์คำสั่ง
net stop MSSQLSERVERหรือใช้ PowerShell:
Get-Service MSSQLSERVER| Stop-Serviceเปิดตัวแก้ไขรีจิสทรี (
regedit.exe) และไปที่คีย์รีจิสทรีของบริการ SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;
เปลี่ยนค่าของพารามิเตอร์ ImagePath โดยเพิ่มตัวเลือก -m เป็นอาร์กิวเมนต์ให้กับ sqlservr.exe ตัวอย่างเช่น ตั้งค่าสตริงเริ่มต้นต่อไปนี้:
"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -mเริ่มเซิร์ฟเวอร์ SQL:
net start MSSQLSERVER-
ขณะนี้ SQL Server ของคุณทำงานในโหมดผู้ใช้คนเดียวและอนุญาตให้สมาชิกกลุ่มผู้ดูแลระบบภายใน (หรือผู้ดูแลระบบ Windows ในตัว) เชื่อมต่อกับอินสแตนซ์ SQL Server ด้วยสิทธิ์ดูแลระบบ
เปิด SQL Server Management Studio (SSMS) และเชื่อมต่อกับ SQL Server Database Engine โดยใช้บัญชีที่เป็นสมาชิกของกลุ่มผู้ดูแลระบบภายใน
ไปที่ ความปลอดภัย -> การเข้าสู่ระบบ และค้นหาผู้ใช้ sa ผู้ใช้ sa ถูกปิดใช้งานตามค่าเริ่มต้น
เปิดคุณสมบัติ ไปที่แท็บ ทั่วไป และตั้งรหัสผ่าน SA ใหม่ จากนั้นเปิดใช้งานบัญชีนี้ในแท็บ สถานะ (เข้าสู่ระบบ -> เปิดใช้งาน)
ในการอนุญาตให้เชื่อมต่อกับ MSSQL ภายใต้บัญชี SQL ในเครื่อง (รวมถึง sa) คุณต้องเปิดใช้งาน SQL Server และโหมดการรับรองความถูกต้องของ Windows ในคุณสมบัติของเซิร์ฟเวอร์บนแท็บ ความปลอดภัย มิฉะนั้น เมื่อเชื่อมต่อภายใต้บัญชี sa ท้องถิ่น ข้อผิดพลาดจะปรากฏขึ้น:
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)นอกจากนี้ ในส่วน เข้าสู่ระบบ คุณสามารถเพิ่มผู้ใช้ Windows ที่จำเป็น (ในเครื่องหรือโดเมน) และกำหนดโทเล Sysadmin (ใน บทบาทเซิร์ฟเวอร์ แท็บ). หรือคุณสามารถเพิ่มบทบาทให้กับผู้ใช้จาก sqlcmd cli:
EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';) GOยังคงต้องหยุดบริการ MSSQL อีกครั้ง ส่งคืนค่าเริ่มต้นของพารามิเตอร์รีจิสทรี ImagePart โดยลบสวิตช์ "-m" (
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER);
เริ่มบริการ SQL Server ตามปกติ
ขณะนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ SQL ภายใต้บัญชี sa ในโหมดการรับรองความถูกต้องของเซิร์ฟเวอร์ SQL หรือภายใต้บัญชีผู้ใช้ Windows ที่คุณให้สิทธิ์การดูแลระบบใน SQL Server
เคล็ดลับ คุณสามารถเริ่ม SQL Server ในโหมดผู้ใช้คนเดียวโดยใช้ SQL Server Configuration Manager ในการดำเนินการนี้ ให้ไปที่แท็บ พารามิเตอร์เริ่มต้น ในคุณสมบัติของอินสแตนซ์ SQL ที่ต้องการ และเพิ่มตัวเลือกการเริ่มต้น -m
นอกจากนี้ คุณสามารถใช้เครื่องมือบรรทัดคำสั่ง sqlcmd เพื่อรีเซ็ตรหัสผ่าน SA และให้สิทธิ์เข้าถึง SQL Server:
เริ่ม SQL Server ในโหมดผู้ใช้คนเดียวตามที่อธิบายไว้ข้างต้น
เปิดพรอมต์คำสั่งและเชื่อมต่อกับอินสแตนซ์ SQL Server ของคุณ:
sqlcmd -S localhostในการเปลี่ยนรหัสผ่านผู้ใช้ SA และเปิดใช้งาน ให้รันคำสั่ง T-SQL ต่อไปนี้:
ALTER LOGIN sa enable GO ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331' GOในการให้สิทธิ์การดูแลระบบใน MSSQL สำหรับบัญชี Windows (ผู้ใช้ภายในในตัวอย่างนี้) ให้ใช้คำสั่ง:
CREATE LOGIN [mun-sql01\jsmith] FROM WINDOWS GO ALTER SERVER ROLE sysadmin ADD MEMBER [mun-sql01\jsmith] GO
ในบทความนี้ เราได้แสดงวิธีคืนค่าการเข้าถึง SQL Server ในโหมดผู้ใช้คนเดียว ในโหมดนี้ คุณสามารถรีเซ็ตรหัสผ่าน sa (และผู้ใช้ SQL อื่นๆ) หรือให้สิทธิ์ผู้ดูแลระบบ SQL กับบัญชีผู้ใช้ Windows นอกจากนี้ยังสามารถใช้โหมดผู้ใช้คนเดียวเพื่อกู้คืนฐานข้อมูล temdb ในเซิร์ฟเวอร์ MSSQL







