萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> 資料庫綜合

SQL Server 忘記 SA 密碼?三種重置方案完整教學

從單用戶模式到登錄表修改,找回最高權限

遺失 `sa` 密碼是常見運維場景。本文提供三種不同前提條件下的重置方案,覆蓋大多數情況。

方案一:Windows 驗證可用時 (最簡單)

前提:本機管理員群組成員可用 Windows 驗證登入。

  1. SSMS 以 Windows 驗證連線
  2. 新增查詢視窗執行:
EXEC sp_password NULL, 'NewStrongPassword', 'sa';

即可將 `sa` 密碼重設為 `NewStrongPassword`。

方案二:單用戶模式啟動 (Windows 驗證也失效時)

  1. **停止 SQL Server 服務** (服務管理器或 `net stop MSSQLSERVER`)
  2. **以單用戶模式啟動**:命令列執行 `sqlservr.exe -m -s MSSQLSERVER` (具體路徑視安裝實例而定)
  3. 另開視窗用 `sqlcmd -S . -E` 連線 (此時任何本機管理員均為 sysadmin)
  4. 執行:
ALTER LOGIN sa WITH PASSWORD = 'NewStrongPassword' UNLOCK;
GO
  1. 關閉單用戶模式視窗,正常重啟 SQL Server 服務

方案三:登錄表修改驗證模式 (極端情況)

若混合模式被關閉且無 Windows 驗證入口,可強制切回混合模式:

  1. 停止 `MSSQLSERVER` 及 `SQLSERVERAGENT` 服務
  2. 開啟 `regedit`,定位至:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\LoginMode

(`MSSQL.x` 為實例編號,預設實例通常為 `MSSQL.1`)

  1. 將 `LoginMode` 值改為 `2` (十六進位),代表混合模式
  2. 重啟 SQL Server 服務
  3. 再依方案一或二重設 `sa` 密碼

安全建議

  • 重設後立即啟用密碼策略:`ALTER LOGIN sa WITH CHECK_POLICY = ON;`
  • 考慮停用 `sa`,改建專用低權限應用帳號
  • 定期備份 `master` 資料庫,災難恢復更從容
copyright © 萬盛學電腦網 all rights reserved