web-dev-qa-db-ja.com

パスワード検証コンポーネントと一致するパスワードの生成

MySQL 8はかなり洗練されています "Password Validation Component" (これはvalidate_passwordプラグインを置き換えます)。たくさんのオプションがあります

  • validate_password.number_count
  • validate_password.mixed_case_count
  • validate_password.special_char_count
  • validate_password.dictionary_file
  • validate_password.length

これらはすべてユーザーが設定できるとすれば、これを満たすランダムなパスワードを生成するメカニズムが保証されていますか?設定時に検証コンポーネントを一時停止するためにパスワードを変更するUIを作成する唯一の方法はありますか?

1
Evan Carroll

新しいパスワードを作成するときにユーザーのランダムなパスワードを生成するには、次を使用できます。


mysql> CREATE USER ran_user@localhost IDENTIFIED BY RANDOM PASSWORD;
+----------+-----------+----------------------+
| user     | Host      | generated password   |
+----------+-----------+----------------------+
| ran_user | localhost | UN:5_z05J._*VtU3K%Qu |
+----------+-----------+----------------------+
1 row in set (0.10 sec)

現在/既存のユーザーのパスワードを変更するには、次のステートメントを使用できます。

mysql> ALTER USER ran_user@localhost IDENTIFIED BY RANDOM PASSWORD;
+----------+-----------+----------------------+
| user     | Host      | generated password   |
+----------+-----------+----------------------+
| ran_user | localhost | (YU>{}tu&6@[U%!Pdw>n |
+----------+-----------+----------------------+
1 row in set (0.16 sec)

この RANDOM PASSWORDキーワードはパスワード検証コンポーネントを満たします:

mysql>  show global variables like '%validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.23 sec)

3
JYOTI RAJAI