MySQL-配置密码策略(validate_password)插件

1. 检查插件目录

mysql> show variables like 'plugin_dir';

 

2. 下载第三方开源插件文件并上传到步骤1目录上

 

3. 配置文件中添加对象参数配置

[mysqld]
plugin-load-add=validate_password.so
or 
plugin-load=validate_password.so
# validate_password_policy=2
validate-password=FORCE_PLUS_PERMANENT

 

4. 连接数据库并进行安装插件

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

 

5. 检查确认

SELECT
    PLUGIN_NAME,
    PLUGIN_STATUS,
    plugin_library,
    load_option
FROM
    INFORMATION_SCHEMA.PLUGINS 
WHERE
    plugin_library = 'validate_password.so';
       
mysql> show plugins;  

 

6. 根据需求配置密码策略

 6.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      |
+--------------------------------------+--------+

 

6.2 密码验证插件选项和变量

1)选项--告诉服务启动时如何加载插件
--validate-password[=ON|OFF|FORCE|FORCE_PLUS_PERMANENT]

ON: 默认值
OFF:关闭
FORCE: 强制
FORCE_PLUS_PERMANENT: mysqld服务启动时加载插件并防止服务在运行中将其删除

 

2)变量--启用的检查配置项

validate_password_check_user_name : 默认关闭,设置为ON时可以将密码设置成当前用户名
validate_password_dictionary_file : 检查密码的字典文件的路径名
validate_password_length : 默认为8,限制密码长度的最小字符数
validate_password_mixed_case_count : 默认值为1,限制小写字符和大写字符个数 
validate_password_number_count : 默认值为1,限制数字的个数
validate_password_policy : 默认值为1, 密码强度等级 [LOW:0| MEDIUM:1 | STRONG:2]
validate_password_special_char_count : 默认值为1,限制特殊字符个数

其中,validate_password_policy
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。

 

7. 注意事项

7.1 账号密码过期,需修改密码

遇到场景:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

# 1. 注意密码策略要求 validate_password_policy 等
show variables like 'validate_password%';

# 2. 依据密码策略要求修改密码
/*
-- 2.1 如果密码与Server的策略要求不一致时,临时修改策略及密码后恢复密码策略
set global validate_password_policy=0;
set global validate_password_length=1;
*/
alter user 'root'@'localhost' identified by 'root';
/*
set global validate_password_policy=1;
set global validate_password_length=8;
*/
flush privileges;

-- 2.2 密码符合要求
alter user 'root'@'localhost' identified by 'R#isn218aio';
flush privileges;

 

7.2 

 

posted @ 2020-03-11 15:31  KuBee  阅读(6596)  评论(0编辑  收藏  举报