MySQL密碼策略管理插件validate_password用法詳解
自MySQL5.6版本,引入了新密碼校驗(yàn)插件
validate_password
, 用于管理用戶密碼長度、強(qiáng)度等,保障賬號(hào)的安全性。而到了MySQL 8.0,引入了服務(wù)器組件(Components)這個(gè)特性,validate_password插件已用服務(wù)器組件重新實(shí)現(xiàn)。
一、密碼策略插件validate_password用法介紹
validate_password是MySQL默認(rèn)的密碼管理策略插件,可通過配置對(duì)用戶密碼長度、強(qiáng)度
進(jìn)行管理;
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、屬性信息介紹
屬性 | 默認(rèn)值 | 屬性描述 |
---|---|---|
validate_password_check_user_name | OFF | 設(shè)置為ON的時(shí)候表示能將密碼設(shè)置成當(dāng)前用戶名。 |
validate_password_dictionary_file | 用于檢查密碼的字典文件的路徑名,默認(rèn)為空 | |
validate_password_length | 8 | 密碼的最小長度,也就是說密碼長度必須大于或等于8 |
validate_password_mixed_case_count | 1 | 如果密碼策略是中等或更強(qiáng)的,validate_password要求密碼具有的小寫和大寫字符的最小數(shù)量。對(duì)于給定的這個(gè)值密碼必須有那么多小寫字符和那么多大寫字符。 |
validate_password_number_count | 1 | 密碼必須包含的數(shù)字個(gè)數(shù) |
validate_password_policy | MEDIUM | right-aligned 密碼強(qiáng)度檢驗(yàn)等級(jí),可以使用數(shù)值0、1、2或相應(yīng)的符號(hào)值LOW、MEDIUM、STRONG來指定。0/LOW:只檢查長度。 1/MEDIUM:檢查長度、數(shù)字、大小寫、特殊字符。 2/STRONG:檢查長度、數(shù)字、大小寫、特殊字符、字典文件。 |
validate_password_special_char_count | 1 | 密碼必須包含的特殊字符個(gè)數(shù) |
1 - 3、修改方式(命令)
如下,是修改密碼強(qiáng)度等級(jí)
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密碼強(qiáng)度等級(jí)
密碼規(guī)則 | 強(qiáng)度得分 |
---|---|
Length < 4 | 0 |
Length ≥ 4 and < validate_password.length | 25 |
Satisfies policy 1 (LOW:只驗(yàn)證長度) | 50 |
Satisfies policy 2 (MEDIUM:驗(yàn)證長度、數(shù)字、大小寫、特殊字符) | 75 |
Satisfies policy 3 (STRONG:驗(yàn)證長度、數(shù)字、大小寫、特殊字符、字典文件) | 100 |
如下,是密碼長度策略控制,代表最小長度,但最小長度為4;如果設(shè)置小于4,也會(huì)默認(rèn)為4的。
SET GLOBAL validate_password_length=6;
二、首次安裝MySQL后的策略配置
通常,在我們安裝完并啟動(dòng)MySQL后,validate_password插件就會(huì)開始運(yùn)行,系統(tǒng)會(huì)給root用戶自動(dòng)生成一個(gè)隨機(jī)密碼,存放到日志文件mysqld.log中,用于首次登錄使用。
可通過命令獲取root用戶的臨時(shí)密碼,如下:waQ,qR%be2(5
,可以用該密碼進(jìn)行首次登錄。
# 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)會(huì)強(qiáng)制讓你重置root密碼,否則不允許對(duì)數(shù)據(jù)庫進(jìn)行操作。
mysql> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改為一個(gè)簡單的密碼,會(huì)報(bào)以下錯(cuò)誤:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
如果你想設(shè)置成“123456”這種弱口令,需要先將validate_password_policy
設(shè)為LOW
;這樣MySQL就只檢查密碼長度了。
mysql> SET GLOBAL validate_password_policy=LOW; Query OK, 0 rows affected (0.04 sec)
三、安裝validate_password插件
有些版本較低或未進(jìn)行全部插件安裝的MySQL,會(huì)發(fā)現(xiàn)如下情況:
mysql> SHOW VARIABLES LIKE 'validate_password%'; Empty set (0.00 sec)
沒看錯(cuò),未安裝~
那么請(qǐng)執(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:竹蜻蜓不會(huì)飛,邀請(qǐng)大家一同入駐:https://www.oschina.net/sharing-plan/apply
到此這篇關(guān)于MySQL密碼策略管理插件validate_password的文章就介紹到這了,更多相關(guān)mysql validate_password內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫實(shí)驗(yàn)實(shí)現(xiàn)簡單數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)
這篇文章主要介紹了MySQL數(shù)據(jù)庫實(shí)驗(yàn)實(shí)現(xiàn)簡單數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì),文章通過理解并能運(yùn)用數(shù)據(jù)庫設(shè)計(jì)的常見步驟來設(shè)計(jì)滿足給定需求的概念模和關(guān)系數(shù)據(jù)模型展開詳情,需要的朋友可以參考一下2022-06-06mysql 8.0.15 winx64壓縮包安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.15 winx64壓縮包安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫的方法
ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在Windows平臺(tái)中常以WAMP方式搭配使用,在Linux平臺(tái)中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺(tái)共用Windows平臺(tái)中的MySQL數(shù)據(jù)庫2012-01-01MySQL對(duì)標(biāo)準(zhǔn)SQL的擴(kuò)展方式
MySQL對(duì)標(biāo)準(zhǔn)SQL的擴(kuò)展包括磁盤上的數(shù)據(jù)組織方式、通用語言語法、SQL語句語法、數(shù)據(jù)類型、函數(shù)和運(yùn)算符等,這些擴(kuò)展使得MySQL在某些方面與其他SQL數(shù)據(jù)庫管理系統(tǒng)不同2025-02-02