mysql如何设置账户锁定策略

来源:这里教程网 时间:2026-02-28 20:06:41 作者:

MySQL 从 5.7.17 版本开始支持账户锁定策略,主要通过 密码管理登录失败处理机制 实现。要设置账户锁定策略,需结合系统变量和用户权限配置来完成。

启用登录失败跟踪与账户锁定

MySQL 提供了连接控制插件(connection control)和密码安全策略来实现账户锁定功能。以下是关键步骤:

安装连接控制插件:该插件可监控登录失败次数并触发延迟或锁定。
执行以下命令安装: INSTALL PLUGIN connection_control SONAME 'connection_control.so';
INSTALL PLUGIN connection_control_failed_login_attempts SONAME 'connection_control.so';
配置登录失败锁定参数
在 my.cnf 或 my.ini 配置文件中添加: [mysqld]
connection-control-failed-connections-threshold = 3
connection-control-min-connection-delay = 1000
connection-control-max-connection-delay = 86400


说明:
- failed-connections-threshold:允许连续失败登录次数,设为 3 表示第 4 次开始延迟连接。
- min/max-connection-delay:首次延迟 1 秒,失败越多延迟越长,最长可达 24 小时。

使用密码安全策略增强账户安全

MySQL 的密码验证插件可强制用户定期修改密码,并限制重复使用。虽然不直接“锁定”账户,但能有效提升安全性。

启用密码验证插件
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
设置密码策略级别
SET GLOBAL validate_password.policy = MEDIUM;
可选值:LOW / MEDIUM / STRONG,MEDIUM 会检查长度、数字、大小写、特殊字符。
设置密码过期策略
让用户每 90 天必须改密码: ALTER USER 'username'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
或全局默认: SET GLOBAL default_password_lifetime = 90;

手动锁定与解锁用户账户

MySQL 支持直接锁定用户,适用于临时禁用场景。

创建或修改用户时设置锁定状态
CREATE USER 'testuser'@'%' IDENTIFIED BY 'password' ACCOUNT LOCK;
锁定已有用户
ALTER USER 'testuser'@'%' ACCOUNT LOCK;
解锁用户
ALTER USER 'testuser'@'%' ACCOUNT UNLOCK;

基本上就这些。账户锁定策略依赖插件和配置组合实现。如果需要严格审计和自动封禁,建议结合外部监控脚本或防火墙工具。MySQL 内置机制更偏向延迟和提醒,而非永久锁定。确保插件加载成功后重启服务生效,可通过 SHOW PLUGINS; 查看状态。不复杂但容易忽略细节。

相关推荐