MySQL 8.0 密码管理,密码验证策略,密码强度策略,密码过期策略
1. 密码策略相关参数
(1)新密码不能与前面三次相同
password_history=3
(2)新密码不能与前面 90 天内使用的密码相同
password_reuse_interval=90
(3)修改密码需要用户提供当前密码
password_require_current=on
(4)密码过期时间,单位为天,设置为 0 表示永不过期
default_password_lifetime=0
2. 密码验证策略
MySQL 8.0 通过 validate password 组件实现密码验证策略。
# 安装 validate password 组件 INSTALL COMPONENT 'file://component_validate_password'; # 卸载 validate password 组件 UNINSTALL COMPONENT 'file://component_validate_password';
查看 validate password 相关参数,如下:
mysql> show global variables like 'validate_password%'; | 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 | MEDIUM | | validate_password.special_char_count | 1 |
-
validate_password.policy 表示密码策略,可选值如下:
- 0 or LOW,密码必须满足长度要求
- 1 or MEDIUM,密码必须满足长度、数字、大小写、特殊字符要求
- 2 or STRONG,密码必须满足长度、数字、大小写、特殊字符、字典文件要求
- validate_password.length 表示密码的最小长度
- validate_password.number_count,表示密码中数字的最小数量
- validate_password.mixed_case_count,表示密码中混合大小写字母的数量
- validate_password.special_char_count,表示密码中特殊字符的数量
- validate_password.dictionary_file,表示字典文件的路径
- validate_password.check_user_name,设置为 ON 表示密码不能与当前会话的账号名称相同
3. 动态调整用户的密码策略
创建用户时指定密码策略,如下:
# 密码5天内不重复,不能使用之前5次的密码,5天后过期 create user admin100@'%' identified with 'mysql_native_password' by '123456' password reuse interval 5 day password history 5 password expire interval 5 day; # 密码永不过期 create user admin200@'%' identified with 'mysql_native_password' by '123456' password reuse interval 5 day password history 5 password expire never;
alter user 动态修改用户的密码策略,如下:
# 动态修改用户的密码策略 alter user admin200@'%' password reuse interval 10 day password history 10 password expire interval 10 day;
参考资料:
https://dev.mysql.com/doc/mysql-security-excerpt/8.0/en/validate-password-options-variables.html
文章评论
共0条评论