啟用 sa 帳號並修改密碼時遇到 錯誤 15116:密碼驗證失敗,密碼太短不符合 Windows 策略。原因:SQL Server 繼承 Windows/網域密碼策略 (長度、複雜度、歷史)。
EXEC sp_password 'sa', null, 'sa'; -- 舊語法,參數順序: old, new, login
ALTER LOGIN sa ENABLE;
-- Msg 15116, Level 16, State 1
-- Password validation failed. The password does not meet Windows policy requirements.
-- 正確語法: sp_password @old, @new, @loginame
EXEC sp_password 'sa', 'Uiop_098Mn', 'sa'; -- 含大小寫、數字、符號、長度≥8
ALTER LOGIN sa ENABLE;
或現代語法 (SQL 2005+):
ALTER LOGIN sa WITH PASSWORD = 'Uiop_098Mn' UNLOCK;
secpol.msc → 帳戶原則 → 密碼原則gpupdate /force 同步SELECT * FROM sys.sql_logins WHERE name = 'sa'; → is_policy_checked-- 單一登入關閉
ALTER LOGIN sa WITH CHECK_POLICY = OFF;
-- 新建登入時關閉
CREATE LOGIN app_user WITH PASSWORD = 'simple', CHECK_POLICY = OFF;
風險:違反合規 (PCI-DSS、等保)、易遭暴力破解、**僅限開發/測試環境**。
Login Auditing = Failed logins 或 Extended Events| 策略 | 預設值 | 建議值 |
|---|---|---|
| Enforce password history | 24 | 24 |
| Maximum password age | 42 天 | 90 天 |
| Minimum password age | 1 天 | 1 天 |
| Minimum password length | 7 | 12+ |
| Password must meet complexity | Enabled | Enabled |
| Store passwords using reversible encryption | Disabled | Disabled |