MySQL密码策略管理插件validate_password
小伙伴想精準查找自己想看的MySQL文章?喏 → MySQL江湖路 | 專欄目錄
??自MySQL5.6版本,引入了新密碼校驗插件validate_password, 用于管理用戶密碼長度、強度等,保障賬號的安全性。而到了MySQL 8.0,引入了服務器組件(Components)這個特性,validate_password插件已用服務器組件重新實現。
目錄
- 一、密碼策略插件validate_password用法介紹
- 1 - 1、策略查詢命令
- 1 - 2、屬性信息介紹
- 1 - 3、修改方式(命令)
- 二、首次安裝MySQL后的策略配置
- 三、安裝validate_password插件
- 附、一張有故事的照片(十四)
一、密碼策略插件validate_password用法介紹
??validate_password是MySQL默認的密碼管理策略插件,可通過配置對用戶密碼長度、強度進行管理;
1 - 1、策略查詢命令
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_check_user_name | OFF | | 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.00 sec)1 - 2、屬性信息介紹
| validate_password_check_user_name | OFF | 設置為ON的時候表示能將密碼設置成當前用戶名。 |
| validate_password_dictionary_file | 用于檢查密碼的字典文件的路徑名,默認為空 | |
| validate_password_length | 8 | 密碼的最小長度,也就是說密碼長度必須大于或等于8 |
| validate_password_mixed_case_count | 1 | 如果密碼策略是中等或更強的,validate_password要求密碼具有的小寫和大寫字符的最小數量。對于給定的這個值密碼必須有那么多小寫字符和那么多大寫字符。 |
| validate_password_number_count | 1 | 密碼必須包含的數字個數 |
| validate_password_policy | MEDIUM | right-aligned 密碼強度檢驗等級,可以使用數值0、1、2或相應的符號值LOW、MEDIUM、STRONG來指定。 0/LOW:只檢查長度。 1/MEDIUM:檢查長度、數字、大小寫、特殊字符。 2/STRONG:檢查長度、數字、大小寫、特殊字符、字典文件。 |
| validate_password_special_char_count | 1 | 密碼必須包含的特殊字符個數 |
1 - 3、修改方式(命令)
如下,是修改密碼強度等級
SET GLOBAL validate_password_policy=LOW; -- For LOW SET GLOBAL validate_password_policy=MEDIUM; -- For MEDIUM SET GLOBAL validate_password_policy=STRONG; -- For HIGH -- 同等于下 _ SET GLOBAL validate_password_policy = 0; -- For LOW SET GLOBAL validate_password_policy = 1; -- For MEDIUM SET GLOBAL validate_password_policy = 2; -- For HIGHMySQL密碼強度等級
| Length < 4 | 0 |
| Length ≥ 4 and < validate_password.length | 25 |
| Satisfies policy 1 (LOW:只驗證長度) | 50 |
| Satisfies policy 2 (MEDIUM:驗證長度、數字、大小寫、特殊字符) | 75 |
| Satisfies policy 3 (STRONG:驗證長度、數字、大小寫、特殊字符、字典文件) | 100 |
如下,是密碼長度策略控制,代表最小長度,但最小長度為4;如果設置小于4,也會默認為4的。
SET GLOBAL validate_password_length=6;二、首次安裝MySQL后的策略配置
??通常,在我們安裝完并啟動MySQL后,validate_password插件就會開始運行,系統會給root用戶自動生成一個隨機密碼,存放到日志文件mysqld.log中,用于首次登錄使用。
??可通過命令獲取root用戶的臨時密碼,如下:waQ,qR%be2(5,可以用該密碼進行首次登錄。
# grep “password” /var/log/mysqld.log2020-12-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5登錄后系統會強制讓你重置root密碼,否則不允許對數據庫進行操作。
mysql> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.如果只是修改為一個簡單的密碼,會報以下錯誤:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements如果你想設置成“123456”這種弱口令,需要先將validate_password_policy設為LOW;這樣MySQL就只檢查密碼長度了。
mysql> SET GLOBAL validate_password_policy=LOW; Query OK, 0 rows affected (0.04 sec)三、安裝validate_password插件
有些版本較低或未進行全部插件安裝的MySQL,會發現如下情況:
mysql> SHOW VARIABLES LIKE 'validate_password%'; Empty set (0.00 sec)沒看錯,未安裝~
那么請執行如下命令安裝即可:
mysql> install plugin validate_password soname 'validate_password.so'; Query OK, 0 rows affected (0.17 sec)卸載命令:
mysql> UNINSTALL PLUGIN validate_password; Query OK, 0 rows affected, 1 warning (0.01 sec)安裝后可通過命令 show plugins 查看已安裝的MySQL插件:狀態為:ACTIVE表示已激活。
mysql> show plugins; +----------------------------+----------+--------------------+----------------------+---------+ | Name | Status | Type | Library | License | +----------------------------+----------+--------------------+----------------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL | | MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE_LRU | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_POOL_STATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DEFAULT_STOPWORD | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_BEING_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_CONFIG | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_CACHE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_TABLE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_TABLES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_TABLESTATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_COLUMNS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_FIELDS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_FOREIGN | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_FOREIGN_COLS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_DATAFILES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_VIRTUAL | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | CSV | ACTIVE | STORAGE ENGINE | NULL | GPL | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL | | BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL | | partition | ACTIVE | STORAGE ENGINE | NULL | GPL | | ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL | | ngram | ACTIVE | FTPARSER | NULL | GPL | | validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL | +----------------------------+----------+--------------------+----------------------+---------+ 45 rows in set (0.00 sec)附、一張有故事的照片(十四)
默
是心靈的寄托
我的博客即將同步至 OSCHINA 社區,這是我的 OSCHINA ID:竹蜻蜓不會飛,邀請大家一同入駐:https://www.oschina.net/sharing-plan/apply
總結
以上是生活随笔為你收集整理的MySQL密码策略管理插件validate_password的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D开发-PhotoScan 模型生成
- 下一篇: mysql的password()函数和m