10bet网址
MySQL 8.0リファレンスマニュアル
下载本手册
PDF(美国高级主任)- 36.1 mb
PDF (A4)- 36.2 mb


このペ,ジは機械翻訳したものです。

6.4.3パスワ、ド検証コンポ、ネント

validate_passwordコンポーネントは,アカウントパスワードを要求し,潜在的なパスワードの強度テストを有効にすることで,セキュリティを向上させます。このコンポーネントは,コンポーネント監視用のパスワードポリシーおよびステータス変数を構成できるシステム変数を公開します。

注記

MySQL 8.0では,validate_passwordプラグ@ @ンがvalidate_passwordコンポ,ネントとして再実装されました。(コンポ,ネントの一般情報は,セクション5.5 " MySQLのコンポネント"を参照してください)次の手順では,プラグインではなくコンポーネントの使用方法について説明します。プラグ▪▪ンフォ▪▪ムのvalidate_passwordを使用する手順は,MySQL 5.7参考手册密码验证插件を参照してください。

validate_passwordのプラグ。将来のバジョンのMySQLで削除される予定です。プラグインを使用するMySQLインストールでは,かわりにコンポーネントの使用に移行する必要があります。セクション6.4.3.3 "パスワ,ド検証コンポ,ネントへの移行"を参照してください。

validate_passwordコンポ,ネントは,次の機能を実装します:

  • クリアテキスト値として指定されたパスワ,ドを割り当てるSQLステ,トメントの場合,validate_passwordは現在のパスワードポリシーに対してパスワードをチェックし,弱い場合はパスワードを拒否します(ステートメントはER_NOT_VALID_PASSWORDエラ,を返します)。これは,改变用户创建用户および设置密码ステ,トメントに適用されます。

  • 创建用户ステ,トメントの場合,validate_passwordではパスワ,ドを指定する必要があり,パスワ,ドポリシ,を満たしている必要があります。これは,アカウントが最初にロックされている場合でも当てはまります。アカウントを後でロック解除すると,ポリシ,を満たすパスワ,ドなしでアクセス可能になるためです。

  • validate_passwordには,潜在的なパスワ,ドの強度を評価するVALIDATE_PASSWORD_STRENGTH ()SQL関数が実装されています。この関数は,パスワ,ド引数を取り,0(弱い)から100(強い)までの整数を返します。

注記

アカウントパスワド(改变用户创建用户および设置密码)を割当てまたは変更するステ,トメントの場合,ここで説明するvalidate_password機能はMySQLに内部的に資格証明を格納する認証プラグインを使用するアカウントにのみ適用されます。MySQL外部の資格証明システムに対して認証を実行するプラグインを使用するアカウントの場合,パスワード管理もそのシステムに対して外部で処理する必要があります。内部資格証明記憶域の詳細は,セクション6.2.15 "パスワド管理"を参照してください。

前述の制限は,アカウントに直接影響しないため,VALIDATE_PASSWORD_STRENGTH ()関数の使用には適用されません。

例:

  • validate_passwordは,次のステ,トメントでクリアテキストパスワ,ドを確認します。デフォルトのパスワードポリシーではパスワードに最低8文字の長さが要求されるため,パスワードが弱いことからステートメントはエラーを生成します。

    mysql> ALTER USER() IDENTIFIED BY 'abc';错误1819 (HY000):您的密码不满足当前的策略要求
  • 元のパスワード値はチェックに使用できないため,ハッシュ値として指定されたパスワードはチェックされません:

    mysql> ALTER USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';查询OK, 0行受影响(0.01秒)
  • 現在のパスワードポリシーを満たすパスワードがアカウントに含まれていないため,アカウントが最初にロックされていても,このアカウント作成ステートメントは失敗します:

    mysql> CREATE USER 'juanita'@'localhost' ACCOUNT LOCK错误1819 (HY000):您的密码不满足当前的策略要求
  • パスワ,ドを確認するには,VALIDATE_PASSWORD_STRENGTH ()関数を使用します:

    mysql> SELECT VALIDATE_PASSWORD_STRENGTH('weak');+------------------------------------+ | VALIDATE_PASSWORD_STRENGTH(“弱 ') | +------------------------------------+ | 25  | +------------------------------------+ mysql >选择VALIDATE_PASSWORD_STRENGTH(“lessweak _@123美元”);+----------------------------------------------+ | VALIDATE_PASSWORD_STRENGTH(“lessweak _@123美元 ') | +----------------------------------------------+ | 50  | +----------------------------------------------+ mysql >选择VALIDATE_PASSWORD_STRENGTH(“N0Tweak $ _@123 !”);+----------------------------------------------+ | VALIDATE_PASSWORD_STRENGTH(“N0Tweak _@123美元 !') | +----------------------------------------------+ | 100年  | +----------------------------------------------+

パスワ,ドチェックを構成するには,validate_password。xxxという形式の名前を持システム変数を変更します。これらは,パスワ,ドポリシ,を制御するパラメ,タです。セクション6.4.3.2 "パスワ,ド検証オプションおよび変数"を参照してください。

validate_passwordがンストルされていない場合,validate_password。xxxシステム変数は使用できず,ステ,トメントのパスワ,ドはチェックされず,VALIDATE_PASSWORD_STRENGTH ()関数は常に0を返します。たとえば,プラグインがインストールされていない場合,アカウントには8文字未満のパスワードを割り当てることも,パスワードをまったく割り当てないこともできます。

validate_passwordが:媒介および强大的。デフォルトは媒介です。これを変更するには,validate_password.policyの値を変更します。これらのポリシ,により,実装されるパスワ,ドテストはますます厳密になります。次の説明では,適切なシステム変数を変更して変更できるデフォルトのパラメ,タ値に,いて説明します。

  • ポリシ,は,パスワ,ドの長さのみテストします。パスワドは少なくとも8文字の長さでなければなりません。この長さを変更するには,validate_password.lengthを変更します。

  • 媒介ポリシーでは,パスワードに少なくとも1つの数字,1つの小文字,1つの大文字および1つの特殊文字(英数字以外)を含める必要があるという条件が追加されます。これらの値を変更するには,validate_password.number_countvalidate_password.mixed_case_countおよびvalidate_password.special_char_countを変更します。

  • 强大的ポリシーは,パスワードの4文字以上の部分文字列が,(辞書ファイルが指定された場合に)辞書ファイル内の単語と一致してはならないという条件を追加します。ディクショナリファ电子邮箱ルを指定するには,validate_password.dictionary_fileを変更します。

また,validate_passwordでは,現在のセッションの有効なユーザーアカウントのユーザー名部分と一致するパスワードを転送または逆方向に拒否する機能がサポートされています。この機能を制御するために,validate_passwordでは,デフォルトで有効になっているvalidate_password.check_user_nameシステム変数が公開されます。