災難場景:
- 唯一的 sysadmin 是 Windows 群組/帳號。
- sa 停用、混合模式未啟用。
- 該 Windows 帳號被誤刪,導致完全無法登入 SQL Server。
net stop MSSQLSERVER (具名實例用 net stop MSSQL$INSTNAME)net start MSSQLSERVER /m"SQLCMD"/m"SQLCMD" 限制僅允許 sqlcmd 連線,防止其他應用搶佔唯一連線。sqlcmd -S . -E (Windows 驗證,本機管理員在單一使用者模式自動映射為 sysadmin)-- 啟用 sa 並設定強密碼
ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = 'ComplexP@ssw0rd!';
-- 或新增 Windows 帳號並加入 sysadmin
CREATE LOGIN [DOMAIN\NewAdmin] FROM WINDOWS;
ALTER SERVER ROLE sysadmin ADD MEMBER [DOMAIN\NewAdmin];
-- 確認
SELECT name, sysadmin FROM sys.syslogins WHERE sysadmin = 1;
GO
EXIT)。net stop MSSQLSERVER 再 net start MSSQLSERVER (不加 /m 參數)。DOMAIN\SQLAdmins)。SERVER_ROLE_MEMBER_CHANGE_GROUP 事件,監控 sysadmin 成員變更。