SQL Server 可以使用 Windows 密碼原則機制。 密碼原則適用於使用 SQL Server 驗證的登入,以及具有密碼的自主資料庫使用者。
SQL Server 可以將 Windows 中使用的相同複雜度和到期原則套用至 SQL Server 內所使用的密碼。 這項功能取決於 NetValidatePasswordPolicy API。
密碼複雜性
密碼複雜度原則的設計目的是藉由增加可能的密碼數目來阻止暴力密碼破解攻擊。 強制執行密碼複雜度原則時,新密碼必須符合下列指導方針:
密碼不包含使用者的帳戶名稱。
密碼長度至少為八個字元。
密碼包含下列四個類別中的三個字元:
拉丁大寫字母 (A 到 Z)
拉丁小寫字母 (a 到 z)
基本的 10 個數字 (0 到 9)
非英數位元,例如:驚嘆號(!)、美元符號($)、數位符號(#),或百分比(%)。
密碼長度最多可達 128 個字元。 您應該使用盡可能長且複雜的密碼。
密碼過期
密碼到期原則可用來管理密碼的存續期。 當 SQL Server 強制執行密碼到期原則時,系統會提醒使用者變更舊密碼,並停用已過期密碼的帳戶。
政策強制執行
您可以針對每個 SQL Server 登入個別設定密碼原則的強制執行。 使用 ALTER LOGIN (Transact-SQL) 來設定 SQL Server 登入的密碼原則選項。 下列規則適用於密碼原則強制執行的設定:
當CHECK_POLICY變更為 ON 時,會發生下列行為:
除非明確設定為 OFF,否則CHECK_EXPIRATION也會設定為 ON。
密碼歷程記錄會使用目前密碼哈希的值初始化。
之後也會啟用帳戶鎖定持續時間、帳戶鎖定閾值,以及重設帳戶鎖定計數器。
當CHECK_POLICY變更為 OFF 時,會發生下列行為:
CHECK_EXPIRATION也會設定為 OFF。
已清除密碼歷程記錄。
lockout_time的值被重設。
某些政策選項組合不受支援。
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設為 ON。 否則,陳述式便會失敗。
如果CHECK_POLICY設定為 OFF,則CHECK_EXPIRATION無法設定為 ON。 具有這個選項組合的 ALTER LOGIN 語句將會失敗。
設定CHECK_POLICY = ON 可防止建立下列密碼:
Null 或空白
與電腦名稱或登入名稱相同
下列任一項:“password”、“admin”、“administrator”、“sa”、“sysadmin”
安全策略可能會在 Windows 中設定,或可能從網域接收。 若要檢視電腦上的密碼原則,請使用本機安全策略 MMC 嵌入式管理單元 (secpol.msc)。