密碼原則
當 SQL Server 是在 Windows Server 2003 或更新版本上執行時,就可以使用 Windows 密碼原則機制。
SQL Server 可套用 Windows Server 2003 所使用的相同複雜性和過期原則來處理 SQL Server 內部使用的密碼。這項功能相依於 NetValidatePasswordPolicy API,而這個 API 只有 Windows Server 2003 和更新版本才有。
密碼複雜性
密碼複雜性原則是為了阻止暴力攻擊而設計,方法是盡可能地增加密碼數目。當強制執行密碼複雜性原則時,新的密碼必須符合下列指導方針:
密碼不包含全部或部分的使用者帳戶名稱。帳戶名稱的一部分是定義為三個以上的連續英數字元,兩邊以空格 (例如空格鍵、Tab 鍵和 Return 鍵) 或下列任一字元分隔:逗號 (,)、句號 (.)、連字號 (-)、底線 (_) 或數字符號 (#) 分隔。
密碼長度至少為八個字元。
密碼包含下列四種字元的其中三種:
拉丁文大寫字母 (A 到 Z)。
拉丁文小寫字母 (a 到 z)。
以 10 危基底的數字 (0 到 9)。
非英數字元,例如:驚嘆號 (!)、錢幣符號 ($)、數字符號 (#) 或百分比符號 (%)。
密碼長度最多可以包含 128 個字元,您應該盡可能使用長且複雜的密碼。
密碼過期
密碼過期原則用於管理密碼的壽命。當 SQL Server 強制執行密碼過期原則時,系統會提醒使用者變更舊密碼和停用有過期密碼的帳戶。
原則強制執行
可個別對每一個 SQL Server 登入設定密碼原則的強制執行。使用 ALTER LOGIN (Transact-SQL) 來設定 SQL Server 登入的密碼原則選項。下列規則會套用至密碼原則強制執行的組態:
當 CHECK_POLICY 改為 ON 時,會發生下列行為:
CHECK_EXPIRATION 也會設為 ON,除非它已明確設為 OFF。
密碼記錄會使用目前密碼雜湊的值來初始化。
當 CHECK_POLICY 改為 OFF 時,會發生下列行為:
CHECK_EXPIRATION 也會設為 OFF。
會清除密碼記錄。
重設 lockout_time 的值。
有些原則選項組合不受支援。
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設為 ON。否則,陳述式便會失敗。
如果 CHECK_POLICY 設為 OFF,CHECK_EXPIRATION 就不能設為 ON。具有這些選項組合的 ALTER LOGIN 陳述式會失敗。
重要事項 CHECK_EXPIRATION 和 CHECK_POLICY 只會在 Windows Server 2003 和更新的版本中強制執行。
重要事項 Windows Server 2003 中的已知問題,可能會使系統在達到 LockoutThreshold 之後,無法重設錯誤密碼計數。此舉可能會在後續登入嘗試失敗時導致立即鎖定。您可以手動重設錯誤密碼計數,只要設定 CHECK_POLICY = OFF,後面再接 CHECK_POLICY = ON 即可。
當 SQL Server 是在 Windows 2000 執行時,設定 CHECK_POLICY = ON 將阻止建立密碼:
Null 或空白
與電腦或登入名稱相同
下列其中之一:"password"、"admin"、"administrator"、"sa"、"sysadmin"
安全性原則可能是在 Windows 中設定的,也可能是從網域收到的。若要檢視電腦上的密碼原則,請使用 [本機安全性原則] MMC 嵌入式管理單元 (secpol.msc)。