MySQL密碼策略管理插件validate_password用法詳解
自MySQL5.6版本,引入了新密碼校驗插件
validate_password, 用于管理用戶密碼長度、強度等,保障賬號的安全性。而到了MySQL 8.0,引入了服務器組件(Components)這個特性,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 HIGH
MySQL密碼強度等級
| 密碼規(guī)則 | 強度得分 |
|---|---|
| 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插件就會開始運行,系統(tǒng)會給root用戶自動生成一個隨機密碼,存放到日志文件mysqld.log中,用于首次登錄使用。
可通過命令獲取root用戶的臨時密碼,如下:waQ,qR%be2(5,可以用該密碼進行首次登錄。
# grep “password” /var/log/mysqld.log 2020-12-19T05:16:36.218234Z 1 [Note] A temporary password is generated for root@localhost: waQ,qR%be2(5
登錄后系統(tǒng)會強制讓你重置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,會發(fā)現如下情況:
mysql> SHOW VARIABLES LIKE 'validate_password%'; Empty set (0.00 sec)
沒看錯,未安裝~
那么請執(zhí)行如下命令安裝即可:
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插件:狀態(tài)為: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 社區(qū),這是我的 OSCHINA ID:竹蜻蜓不會飛,邀請大家一同入駐:https://www.oschina.net/sharing-plan/apply
到此這篇關于MySQL密碼策略管理插件validate_password的文章就介紹到這了,更多相關mysql validate_password內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql 8.0.15 winx64壓縮包安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了mysql 8.0.15 winx64壓縮包安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
Ubuntu與windows雙系統(tǒng)下共用MySQL數據庫的方法
ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個小型關系型數據庫管理系統(tǒng),在Windows平臺中常以WAMP方式搭配使用,在Linux平臺中常以LAMP組合形式出現,下面的方法可以使得Ubuntu平臺共用Windows平臺中的MySQL數據庫2012-01-01

