SQL Server は Windows のパスワード ポリシー メカニズムに対応しています。 パスワード ポリシーは、SQL Server 認証を使用するログインと、パスワードを持つ包含データベース ユーザーに適用されます。
SQL Server では、WINDOWS で使用されるのと同じ複雑さと有効期限ポリシーを、SQL Server 内で使用されるパスワードに適用できます。 この機能は、 NetValidatePasswordPolicy API によって異なります。
パスワードの複雑さ
パスワードの複雑さのポリシーは、考えられるパスワードの数を増やすことでブルート フォース攻撃を阻止するように設計されています。 パスワードの複雑さのポリシーが適用されている場合、新しいパスワードは次のガイドラインを満たす必要があります。
パスワードには、ユーザーのアカウント名が含まれていません。
パスワードの長さは 8 文字以上です。
パスワードには、次の 4 つのカテゴリのうち 3 つの文字が含まれています。
英大文字 (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 に設定されなければなりません。 ON に設定しない場合、ステートメントは失敗します。
CHECK_POLICYが OFF に設定されている場合、CHECK_EXPIRATIONを ON に設定することはできません。 このオプションの組み合わせを持つ ALTER LOGIN ステートメントは失敗します。
CHECK_POLICY = ON に設定すると、次のパスワードが作成されなくなります。
Null または空
コンピューターまたはログインの名前と同じ
次のいずれか: "password"、"admin"、"administrator"、"sa"、"sysadmin"
セキュリティ ポリシーは、Windows で設定されているか、ドメインから受信される可能性があります。 コンピューターでパスワード ポリシーを表示するには、ローカル セキュリティ ポリシー MMC スナップイン (secpol.msc) を使用します。