前言
sa 為 SQL Server 最高權限帳號。遺失密碼時,只要具備 Windows 系統管理員權限並能登入 SSMS,即可重設密碼,無需知道原密碼。
適用版本
- SQL Server 2005
- SQL Server 2008 / 2008 R2
- 操作介面大同小異
步驟 1:以 Windows 驗證登入 SSMS
- 開啟 SSMS
- 伺服器類型:Database Engine
- 伺服器名稱:
.\SQLEXPRESS 或實例名稱
- 驗證模式:**Windows Authentication**
- 點擊連接
步驟 2:修改 sa 登入屬性
- 物件總管展開:**安全性 → 登入**
- 找到 **sa** → 右鍵 → **屬性**
- 一般頁籤:
- 密碼:輸入新密碼
- 確認密碼:再次輸入
- 取消勾選:「強制密碼原則」、「強制密碼到期」 (避免複雜度要求與到期干擾)
- 狀態頁籤:
- 登入:**已啟用**
- 連接到資料庫引擎:**授與**
- 點擊確定
步驟 3:啟用混合驗證模式
- 伺服器節點右鍵 → **屬性**
- 安全性頁籤
- 伺服器驗證:選擇 **SQL Server 和 Windows 驗證模式**
- 確定 → 彈出「需重新啟動服務才生效」
步驟 4:重新啟動 SQL Server 服務
- 伺服器節點右鍵 → **重新啟動**
- 或透過 SQL Server Configuration Manager / services.msc 重啟
步驟 5:驗證新密碼
- SSMS 斷開連接
- 重新連接,驗證模式選 **SQL Server 驗證**
- 登入:sa / 新密碼
- 連接成功即完成
T-SQL 替代方案 (適用於無法使用 SSMS 時)
-- 需以 Windows 驗證連入 master 資料庫
ALTER LOGIN sa WITH PASSWORD = 'NewStrongPassword!123';
ALTER LOGIN sa ENABLE;
GO
常見問題排查
| 問題 | 原因 | 解決 |
| 密碼修改後無法登入 | 未啟用混合驗證 / 未重啟服務 | 檢查步驟 3-4 |
| 密碼不符合原則 | 強制密碼原則啟用,新密碼過於簡單 | 取消勾選強制密碼原則,或使用複雜密碼 |
| sa 帳號鎖定 | 狀態頁籤「登入」為停用 | 改為「已啟用」 |
| Windows 驗證無法登入 SSMS | 當前使用者非 sysadmin | 以系統管理員身分執行 SSMS,或由 DBA 協助 |
安全性建議
- sa 密碼設為**高複雜度** (16+ 字元、大小寫、數字、符號)
- **應用程式絕不使用 sa**,建立專用低權限帳號
- 定期輪換 sa 密碼 (建議 90 天)
- 用**登入稽核** (成功/失敗皆記錄)
- 考慮**重命名 sa** (無法直接重命名,可建立新 sysadmin、停用 sa)
結語
修改 sa 密碼是基礎運維技能。掌握 SSMS 圖形介面與 T-SQL 兩種方式,並理解混合驗證、服務重啟、帳號狀態三個關鍵環節,即可從容應對密碼遺失、安全輪換、帳號解鎖等常見場景。