MySQL 8 has a pretty sophisticated "Password Validation Component" (this replaces the validate_password plugin). It has a lot of options,

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

Given that these can all be set by the user, is there mechanism guaranteed to generate a random password that satisfies this? Is the only way to write a UI that changes the password to suspend the validation component when you set it?

有帮助吗?

解决方案

To generating random password for user while creating new one you can use :


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)

For altering password of current/existing user you can use this statement :

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)

This RANDOM PASSWORD keyword satisfies password validator component :

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)

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top