MySQL 8隨機密碼生成器


MySQL 8隨機密碼生成器

在MySQL8.0.18中引入了隨機密碼生成功能,create user、alter user、set password語句可以為用戶生成隨機密碼,而不再需要管理員顯式指定密碼。

缺省情況下,所有MySQL生成的隨機賬戶密碼一共有20個字符的長度。不過,這是可以修改的,通過變量generated_random_password_length指定,有效范圍是從5--255個字符。該變量是動態變量,可以在會話級別、全局級別進行設置。

```
mysql> SHOW variables LIKE 'generated_random_password_length';
+----------------------------------+-------+
| Variable_name | Value |
+----------------------------------+-------+
| generated_random_password_length | 20 |
+----------------------------------+-------+
1 row in set (0.01 sec)
```

一旦隨機密碼生成,密碼被身份驗證插件進行hash后存在mysql.user表中,生成的隨機密碼會以明文的形式返回給用戶,這樣用戶或應用才可以使用密碼:

```
mysql> CREATE USER 'percona'@'localhost' IDENTIFIED BY RANDOM PASSWORD;
+---------+-----------+----------------------+
| user    | host      | generated password   |
+---------+-----------+----------------------+
| percona | localhost | k%RJ51/kA>,B(74;DBq2 |
+---------+-----------+----------------------+
1 row in set (0.02 sec)

mysql> ALTER USER 'percona'@'localhost' IDENTIFIED BY RANDOM PASSWORD;
+---------+-----------+----------------------+
| user    | host      | generated password   |
+---------+-----------+----------------------+
| percona | localhost | eX!EOssQ,(Hn4dOdw6Om |
+---------+-----------+----------------------+
1 row in set (0.01 sec)

mysql> SET PASSWORD FOR 'percona'@'localhost' TO RANDOM;
+---------+-----------+----------------------+
| user    | host      | generated password   |
+---------+-----------+----------------------+
| percona | localhost | 5ohXP2LBTTPzJ+7oEDL4 |
+---------+-----------+----------------------+
1 row in set (0.00 sec)
```

 

生成的隨機密碼明文以哈希的形式存儲,除了最初生成隨機密碼的語句會以明文的形式返回給用戶外,別的地方無法看到明文。

身份驗證插件也隨着hash密碼一同寫入二進制日志。例如,下面就是從日志中挖出的內容:

```
CREATE USER 'percona'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*5978ACEA46C1B81C7BEE2D1470ED1B002FE6840B'
ALTER USER 'percona'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*2994ECB14E21A8333C8C2DEDF38311EB714D500C'
```

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM