首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 密碼管理常見問題與解決方案:服務帳號、sa 重置

     編輯:關於SqlServer

案例一:變更作業系統登入密碼導致 SQL Server 服務啟動失敗

原因

SQL Server 服務(MSSQLSERVER)若設定為「此帳戶」並指定特定網域/本機帳號,該帳號密碼變更後,服務無法以新密碼登入,導致啟動失敗。預設安裝若選「本地系統帳戶」則不受影響。

解決步驟

  1. 開啟「服務」(services.msc 或「我的電腦」→ 管理 → 服務)。
  2. 找到 MSSQLSERVER(或具名實例 MSSQL$InstanceName)。
  3. 右鍵 → 內容 → 「登入」頁籤。
  4. 選擇「本地系統帳戶」或 保留「此帳戶」並輸入新密碼。
  5. 確定 → 重新啟動服務。

最佳實務: 使用專用網域服務帳號(非人員帳號),設定密碼永不過期,並納入密碼管理系統定期輪換。

案例二:遺忘 sa 密碼,如何重置?

前提條件

  • 具備 Windows 系統管理員權限。
  • SQL Server 允許 Windows 驗證模式(混合模式或僅 Windows 模式)。

方法一:企業管理員 / SSMS 圖形化介面(SQL 2000/2005+)

  1. 以 Windows 系統管理員身分登入伺服器。
  2. 開啟企業管理員(SQL 2000)或 SSMS(SQL 2005+),使用 Windows 驗證連線。
  3. 展開「安全性」→ 「登入」→ 右鍵 sa → 內容/屬性。
  4. 輸入新密碼並確認 → 確定。

方法二:單一使用者模式啟動 + sqlcmd(通用、無需 GUI)

  1. 停止 SQL Server 服務。
  2. 以命令列啟動單一使用者模式:
    sqlservr.exe -m -s INSTANCE_NAME(預設實例可省略 -s)。
  3. 另開視窗,使用 sqlcmd -E -S .\INSTANCE_NAME 連線(Windows 驗證,系統管理員自動映射為 sysadmin)。
  4. 執行:ALTER LOGIN sa WITH PASSWORD = 'NewStrongPassword!';
  5. 關閉 sqlservr.exe 控制台視窗,正常啟動 SQL Server 服務。

方法三:修改登錄略過驗證(舊版應急,不推薦)

SQL 7.0/2000 可修改 HKLM\Software\Microsoft\MSSQLServer\MSSQLServer\LoginMode 為 2(混合模式),但仍需知曉一組 sysadmin 權限的 Windows 帳號。

安全性建議

  • 停用 sa 或重命名: ALTER LOGIN sa DISABLE; / ALTER LOGIN sa WITH NAME = [NewAdminName];
  • 強制密碼策略: ALTER LOGIN sa WITH PASSWORD = '...', CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
  • 稽核登入失敗: 伺服器屬性 → 安全性 → 稽核「失敗的登入」。
  • 密碼輪換自動化: 結合 PowerShell + 排程作業定期更換服務帳號與 sa 密碼,並同步更新應用程式連線字串(建議使用 Azure Key Vault / 密碼保管庫)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved