MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。
本文采用测试环境:MySQL 8.0.15
1、在 MySQL安装目录中,\MySQL Server 8.0\lib\plugin 可以看到默认存在validate_password.dll
2、在MySQL 8.0.15中默认没有安装这个插件,我们可以通过 SELECT * from mysql.`plugin` 查看,列表为空。
安装插件:
添加: mysql> INSTALL PLUGIN validate_password SONAME ‘validate_password.dll’;卸载: mysql> UNINSTALL PLUGIN validate_password;
插件安装后,使用 show plugins; 查看是否启用成功
3、查看默认策略配置:
show variables like ‘validate_password%’;
4、测试
修改密码
alter user ‘root’@’localhost’ identified by ‘123456789’;
提示错误
[SQL]alter user ‘root’@’localhost’ identified by ‘123456789’;
[Err] 1819 – Your password does not satisfy the current policy requirements
各项值说明
validate_password_policy:密码安全策略,默认MEDIUM策略
策略
检查规则
0 or LOW
Length
1 or MEDIUM
Length; numeric, lowercase/uppercase, and special characters
2 or STRONG
Length; numeric, lowercase/uppercase, and special characters; dictionary file
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个 validate_password_special_char_count:特殊字符至少1个
修改策略(将策略要求置为LOW,长度要求置为1)
set global validate_password_policy=0;set global validate_password_length=1;
经测试,最小长度为4,设置为1无效,不晓得为什么,后面再查询下。
如不需要,可关闭复杂性策略:
mysql> set global validate_password_policy=0; # 关闭密码复杂性策略
mysql> set global validate_password_length=1; # 设置密码复杂性要求密码最低长度为1
mysql> select @@validate_password_policy; # 查看密码复杂性策略
mysql> select @@validate_password_length; # 查看密码复杂性要求密码最低长度大小
重置密码验证,可成功修改:
alter user ‘root’@’localhost’ identified by ‘1234’;
密码重置成功,可重新登录。
参考链接:
https://www.cnblogs.com/zhi-leaf/p/5994478.html
来源:https://www.cnblogs.com/xiaozi/p/10552100.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10566.html