日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MySQL 8.0系列——生成随机密码

發布時間:2023/12/19 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 MySQL 8.0系列——生成随机密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

從前,有一個客戶,數據庫高權賬號的密碼,要求每天自動地修改為隨機密碼,以增強數據庫的安全性。

我們開發了一個用程序模塊來實現的,當然您也可以用腳本 + cron 來實現。

現在,實現這個需求更為簡單了。

8.0.18版本新增了一個小功能,CREATE USER,ALTER USER和 SET PASSWORD語句可以生成隨機密碼。

生成隨機密碼

mysql> create user 'fanderchan'@'%' IDENTIFIED BY RANDOM PASSWORD;
+------------+------+----------------------+
| user       | host | generated password   |
+------------+------+----------------------+
| fanderchan | %    | YMeIblT.jRciKLWkB0RL |
+------------+------+----------------------+
1 row in set (0.01 sec)

mysql> ALTER USER 'fanderchan'@'%' IDENTIFIED BY RANDOM PASSWORD;
+------------+------+----------------------+
| user       | host | generated password   |
+------------+------+----------------------+
| fanderchan | %    | !bnMk/Lu4C87VMOdXQh. |
+------------+------+----------------------+
1 row in set (0.01 sec)

mysql> SET PASSWORD FOR 'fanderchan'@'%' TO RANDOM;
+------------+------+----------------------+
| user       | host | generated password   |
+------------+------+----------------------+
| fanderchan | %    | dCdJT5h9[Gm/dsC.aVHm |
+------------+------+----------------------+
1 row in set (0.01 sec)

可以看見默認情況下,隨機密碼長度為20個字符,并且具有很好的復雜度(大寫字母、小寫字母、特殊符號、數字)

相關參數

控制隨機密碼的長度

mysql> show variables like 'generated_random_password_length';
+----------------------------------+-------+
| Variable_name                    | Value |
+----------------------------------+-------+
| generated_random_password_length | 20    |
+----------------------------------+-------+
1 row in set (0.00 sec)

補充說明

validate_password是一個可選安裝的MySQL密碼增強插件,但隨機密碼不受validate_password插件的影響和控制
MySQL8.0 默認的密碼認證插件是caching_sha2_password,MySQL5.7 默認的密碼認證插件是mysql_native_password

mysql> show global variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | caching_sha2_password |
+-------------------------------+-----------------------+
1 row in set (0.00 sec)

所以,我在這里補充兩個MySQL 8.0的授權語法和現象:

mysql> create user 'fander1'@'%' IDENTIFIED WITH 'caching_sha2_password' BY RANDOM PASSWORD;
+---------+------+----------------------+
| user    | host | generated password   |
+---------+------+----------------------+
| fander1 | %    | Mk3UO%gi8HB6Qe>KFKxE |
+---------+------+----------------------+
1 row in set (0.01 sec)

mysql> create user 'fander2'@'%' IDENTIFIED WITH 'mysql_native_password' BY RANDOM PASSWORD;
+---------+------+----------------------+
| user    | host | generated password   |
+---------+------+----------------------+
| fander2 | %    | Kp+t0g-3ALKeisQ>yBU/ |
+---------+------+----------------------+
1 row in set (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user where user like 'fander%';
+------------+------+-----------------------+------------------------------------------------------------------------+
| user       | host | plugin                | authentication_string                                                  |
+------------+------+-----------------------+------------------------------------------------------------------------+
| fander1    | %    | caching_sha2_password | $A$005$WG[R/	c]0Z8wdaalCKRoKJFNkh1owsuzQ0lsP9JSGLDHlmdGhM8DvSM1 |
| fander2    | %    | mysql_native_password | *8DADAA12E42653774E3CB670F92E0A58171FE2E8                              |
+------------+------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

我想表達的是,在binlog里,授權語句的密碼顯示為加密后的的密文密碼 (authentication_string字段)。

參考:
https://dev.mysql.com/doc/refman/8.0/en/password-management.html

總結

以上是生活随笔為你收集整理的MySQL 8.0系列——生成随机密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。