パスワード ポリシー

適用対象:SQL Server

SQL Server Windows のパスワード ポリシー メカニズムに対応しています。 パスワード ポリシーは SQL Server 認証を使用するログインに適用され、パスワードを持つ包含データベース ユーザーに適用されます。

SQL ServerSQL Server内部で使用されるパスワードに、Windows で使用されているものと同じ複雑性ポリシーおよび有効期限ポリシーを適用できます。 この機能は NetValidatePasswordPolicy API に依存します。

注意

Azure SQL Database では、パスワードの複雑さが強制されます。 パスワードの有効期限とポリシーの適用セクションは、Azure SQL Database には適用されません。

Azure SQL Managed Instanceのパスワード ポリシーについては、SQL Managed Instance FAQ を参照してください。

パスワードの複雑性

パスワードの複雑性のポリシーは、使用可能なパスワードの数を増やすことにより、総当り攻撃を防ぐようにデザインされています。 パスワードの複雑性のポリシーが適用される場合、新しいパスワードは次のガイドラインを満たしている必要があります。

  • パスワードには、ユーザーのアカウント名は含まれません。

  • パスワードは 8 文字以上である。

  • パスワードは次の 4 つのカテゴリのうちの 3 つのカテゴリの文字を含む。

    • ラテン文字の大文字 (A ~ Z)

    • ラテン文字の小文字 (a ~ z)

    • 算用数字 (0 ~ 9)

    • 感嘆符 (!)、ドル記号 ($)、番号記号 (#)、パーセント記号 (%) などの英数字以外の文字

パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

パスワードの有効期限

パスワードの有効期限のポリシーは、パスワードの寿命を管理します。 SQL Server によってパスワードの有効期限が適用されている場合、ユーザーは古いパスワードを変更するよう通知され、有効期限が切れたパスワードを持つアカウントは無効になります。

ポリシーの適用

パスワード ポリシーの適用は、SQL Server ログインごとに個別に構成できます。 ALTER LOGIN (Transact-SQL) を使用して、SQL Server ログインのパスワード ポリシー オプションを構成します。 パスワード ポリシーの適用を構成する際に、次の規則が当てはまります。

  • CHECK_POLICY を ON に変更した場合、次の動作が行われます。

    • CHECK_EXPIRATIONは、明示的に OFF に設定されていない限り、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) を使用します。

注意

CHECK_POLICYが有効になっているSQL Serverログインの場合、ALTER LOGIN を実行し、パスワードを変更するOLD_PASSWORDをコマンドに含めなかった場合、パスワード履歴の強制は無視されます。 これは、以前に使用したパスワードに関わらず、パスワードのリセットを許可するための仕様上の動作です。 CHECK_POLICYに関連付けられているその他のチェック (長さと複雑さなど) は、OLD_PASSWORDが使用されているかどうかに関係なくチェックされます。

CREATE LOGIN (Transact-SQL)

ALTER LOGIN (Transact-SQL)

CREATE USER (Transact-SQL)

ALTER USER (Transact-SQL)

ログインの作成

データベース ユーザーの作成

強力なパスワード