MySQL 提供内置的验证密码插件,可以显著提升密码的安全性。
设置步骤
首先,编辑配置文件:
vi /etc/my.cnf
然后在 [mysqld]
部分添加以下内容:
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
validate_password_policy=MEDIUM
validate_password_check_user_name=1
接着重启 MySQL 服务:
systemctl restart mysqld
验证插件是否生效
可以通过以下 SQL 语句检查插件是否已经激活:
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%validate_password%';
结果应显示插件为“ACTIVE”。
另外,可以通过以下命令查看密码验证的具体设置:
show global variables like 'validate%';
常见配置项
validate_password_check_user_name=1
:禁止使用与用户名相同或相反的密码。validate_password_length=8
:密码长度至少为 8 个字符。validate_password_mixed_case_count=1
:密码至少包含一个大写和一个小写字母。validate_password_number_count=1
:密码至少包含一个数字。validate_password_special_char_count=1
:密码至少包含一个特殊字符。validate_password_policy=MEDIUM
:密码强度为中等。
实际测试
尝试设置不符合规则的密码:
set password = '123456';
结果将会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
通过上述步骤,MySQL 的密码安全性得到了有效提升,避免了简单密码带来的安全风险。