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

解決 SQL Server 各版本 sa 帳號無法登入的完整步驟

     編輯:關於SqlServer

SQL Server 安裝後若無法使用 sa 帳號登入,通常是因為「混合模式驗證未啟用」或「sa 帳號被停用」。本文提供適用於 SQL Server 2005/2008/2012/2014/2016/2017/2019 等版本的標準修復流程。

方法一:透過 SSMS 圖形介面修復(推薦)

  1. 以 Windows 驗證登入 SSMS,右鍵伺服器名稱 →「屬性」。
  2. 切換至「安全性」頁籤,將「伺服器驗證模式」從「Windows 驗證模式」改為 「SQL Server 和 Windows 驗證模式」,點擊確定。
  3. 開啟「SQL Server 組態管理員」或「外圍應用設定器」,重啟 SQL Server 服務(MSSQLSERVER 或具名執行個體)。
  4. 回到 SSMS,展開「安全性」→「登入」→ 右鍵 sa →「屬性」。
  5. 在「狀態」頁籤,將「登入」改為 「啟用」;在「一般」頁籤設定強力密碼。點擊確定完成。

方法二:透過 T-SQL 指令快速修復

以 Windows 驗證連線後,在查詢視窗執行:

-- 1. 啟用混合驗證模式(需重啟服務生效)
EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    2; -- 1=Windows only, 2=Mixed mode

-- 2. 啟用 sa 帳號並設定密碼
ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = 'YourStrongP@ssw0rd!';

-- 3. 若密碼原則檢查失敗,可暫時關閉檢查
-- ALTER LOGIN sa WITH CHECK_POLICY = OFF;

注意:修改登入模式後必須重啟 SQL Server 服務才會生效。生產環境請安排維護窗口操作。

常見問題排查

錯誤現象可能原因解決方向
登入失敗,錯誤 18456密碼錯誤 / 帳號停用 / 鎖定重設密碼、啟用帳號、檢查鎖定原則
無法連線到伺服器TCP/IP 協定未啟用 / 防火牆阻擋 / 埠號錯誤組態管理員啟用 TCP/IP、開放 1433 埠
信任關係失敗網域環境下 Kerberos/SPN 設定問題檢查 SPN 註冊、委派設定

安全性建議

  • 生產環境建議停用 sa 帳號,改建立專屬低權限 SQL 登入帳號供應用程式使用。
  • 啟用密碼原則(CHECK_POLICY = ON),強制複雜度、期限與鎖定機制。
  • 定期稽核登入失敗事件(錯誤 18456),偵測暴力破解嘗試。
  • 考慮啟用「包含的資料庫使用者」,減少對伺服器層級登入的依賴。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved