Share via


密碼原則

當 SQL Server 2005 是在 Windows Server 2003 或更新版本上執行時,就可以使用 Windows 密碼原則機制。

SQL Server 2005 可套用 Windows Server 2003 所使用的相同複雜性和過期原則,來處理 SQL Server 內部使用的密碼。這項功能相依於 NetValidatePasswordPolicy API,而這個 API 只有 Windows Server 2003 和更新版本才有。

密碼複雜性

密碼複雜性原則是為了阻止暴力攻擊而設計,方法是盡可能地增加密碼數目。當強制執行密碼複雜性原則時,新的密碼必須符合下列指導方針:

  • 密碼不包含全部或部分的使用者帳戶名稱。帳戶名稱的一部分是定義為三個以上的連續英數字元,兩邊以空格 (例如空格鍵、Tab 鍵和 Return 鍵) 或下列任一字元分隔:逗號 (,)、句號 (.)、連字號 (-)、底線 (_) 或數字符號 (#) 分隔。
  • 密碼長度至少為八個字元。
  • 密碼包含下列四種字元的其中三種:
    • 拉丁文大寫字母 (A – Z)。
    • 拉丁文小寫字母 (a – z)。
    • 以 10 危基底的數字 (0 到 9)。
    • 非英數字元,例如:驚嘆號 (!)、錢幣符號 ($)、數字符號 (#) 或百分比符號 (%)。

密碼長度最多可以包含 128 個字元,您應該盡可能使用長且複雜的密碼。

密碼過期

密碼過期原則用於管理密碼的壽命。當 SQL Server 2005 強制執行密碼過期原則時,系統會提醒使用者變更舊密碼和停用有過期密碼的帳戶。

原則強制執行

可個別對每一個 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 陳述式會失敗。
    ms161959.note(zh-tw,SQL.90).gif重要事項:
    CHECK_EXPIRATION 和 CHECK_POLICY 只在 Windows Server 2003 和更新版本上強制執行。
    ms161959.note(zh-tw,SQL.90).gif重要事項:
    Windows Server 2003 中的已知問題,可能會使系統在達到 LockoutThreshold 之後,無法重設錯誤密碼計數。此舉可能會在後續登入嘗試失敗時導致立即鎖定。您可以手動重設錯誤密碼計數,只要設定 CHECK_POLICY = OFF,後面再接 CHECK_POLICY = ON 即可。

當 SQL Server 是在 Windows 2000 執行時,設定 CHECK_POLICY = ON 將阻止建立密碼:

  • Null 或空白
  • 與電腦或登入名稱相同
  • 下列其中之一:"password"、"admin"、"administrator"、"sa"、"sysadmin"

請參閱

概念

增強式密碼

其他資源

CREATE LOGIN (Transact-SQL)
ALTER LOGIN (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助