このペ,ジは機械翻訳したものです。
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。
という形式の名前を持システム変数を変更します。これらは,パスワ,ドポリシ,を制御するパラメ,タです。セクション6.4.3.2 "パスワ,ド検証オプションおよび変数"を参照してください。xxx
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_count
、validate_password.mixed_case_count
およびvalidate_password.special_char_count
を変更します。强大的
ポリシーは,パスワードの4文字以上の部分文字列が,(辞書ファイルが指定された場合に)辞書ファイル内の単語と一致してはならないという条件を追加します。ディクショナリファ电子邮箱ルを指定するには,validate_password.dictionary_file
を変更します。
また,validate_password
では,現在のセッションの有効なユーザーアカウントのユーザー名部分と一致するパスワードを転送または逆方向に拒否する機能がサポートされています。この機能を制御するために,validate_password
では,デフォルトで有効になっているvalidate_password.check_user_name
システム変数が公開されます。