MySQL密码复杂度策略
MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。
本文采用测试环境:MySQL 8.0.15
一、查看所需插件
1.1 在 MySQL安装目录中,\MySQL Server 8.0\lib\plugin 可以看到默认存在validate_password.dll
1.2 在MySQL 8.0.15中默认没有安装这个插件,我们可以通过 SELECT * from mysql.plugin;
查看,列表为空。
二、安装插件
2.1 进入MySQL安装插件
插件安装后,使用 show plugins; 查看是否启用成功
2.2 查看默认策略配置:
查看默认策略配置命令show variables like 'validate_password%';
三、测试
3.1 修改密码
四、各项值说明
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)
经测试,最小长度为4,设置为1无效,不晓得为什么,后面再查询下。
如不需要,可关闭复杂性策略
重置密码验证,可成功修改:
vim /etc/my.cnf plugin-load-add=validate_password.so #在mysql启动时载入插件 validate-password=FORCE_PLUS_PERMANENT #为阻止该插件在运行时被删除,设置为永久强制使用
然后重启mysql
systemctl restart mysqld
插件对应的库对象文件需在配置选项plugin_dir指定的目录中,可以进数据库看一下目录路径
show variables like 'plugin_dir';
字段解读
validate_password_check_user_name:默认关闭,设置为ON时可以将密码设置成当前用户名 validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。 validate_password_length:密码最小长度。 validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。 validate_password_number_count:密码至少要包含的数字个数。 validate_password_special_char_count:密码至少要包含的特殊字符数。 validate_password_policy: validate_password强制执行的密码策略 validate_password_policy的值可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。 0/LOW:只检查长度。对于长度测试,所需的长度是validate_password_length系统变量的值 1/MEDIUM:检查长度、数字、大小写、特殊字符。 2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-05-07 MySQL explain详解
2020-05-07 MySQL查看索引(SHOW INDEX)