MySQL通过安装validate_password插件实现密码复杂度控制,需先执行INSTALL PLUGIN加载插件并用SHOW PLUGINS验证;随后设置策略级别、长度及字符类型要求,如SET GLOBAL validate_password.policy=MEDIUM等参数配置中等强度策略;最后将配置写入my.cnf或my.ini文件实现重启生效,确保CREATE USER或ALTER USER操作符合安全标准。
MySQL 设置密码复杂度主要通过安装和配置 validate_password 插件来实现。该插件可以强制用户设置符合一定安全标准的密码,比如长度、包含字符类型等。
1. 安装 validate_password 插件
在 MySQL 中启用密码策略,首先要确保 validate_password 插件已加载:
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
执行后可通过以下命令确认插件是否已启用:
SHOW PLUGINS LIKE 'validate_password';
2. 配置密码复杂度策略
插件提供多个参数用于控制密码强度,常用参数如下:
- validate_password.policy:密码策略级别(0~2)
- validate_password.length:最小密码长度
- validate_password.char_count:必须包含的字母字符数
- validate_password.number_count:必须包含的数字个数
- validate_password.special_char_count:必须包含的特殊字符数
示例:设置中等强度密码策略
SET GLOBAL validate_password.policy = MEDIUM; SET GLOBAL validate_password.length = 8; SET GLOBAL validate_password.number_count = 1; SET GLOBAL validate_password.char_count = 1; SET GLOBAL validate_password.special_char_count = 1;
此时要求密码至少 8 位,包含一个数字、一个字母、一个特殊字符。
3. 策略级别说明
- LOW (0):只检查长度(默认 8 位)
- MEDIUM (1):在 LOW 基础上增加数字、大小写字母、特殊字符要求
- STRONG (2):在 MEDIUM 基础上检查字典文件(需额外配置)
4. 持久化配置(重启生效)
上述 SET GLOBAL 只在当前运行时有效。要永久生效,需将配置写入 MySQL 配置文件(如 my.cnf 或 my.ini):
[mysqld] validate_password.policy=1 validate_password.length=8 validate_password.number_count=1 validate_password.char_count=1 validate_password.special_char_count=1
修改后重启 MySQL 服务即可。
基本上就这些。开启后,任何 CREATE USER 或 ALTER USER 修改密码的操作都会受到规则限制,不符合的会提示错误。合理配置能有效提升数据库账户安全性。