一、配置添加新用户密码复杂度检查
二、配置密码过期策略
三、MySQL数据库限制多次登录失败重试时间
一、配置密码复杂度检查
1.mysql 5.7.15版本好像默认启用了密码复杂度设置,插件名字叫做 validate_password
mysql>>INSTALL PLUGIN validate_password SONAME 'validate_password.so';
2、加上/etc/my.cnf配置
[mysqld]
plugin-load=validate_password.so
validate_password_policy=2
# 0 or LOW 仅需需符合密码长度
# 1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
# 2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中
validate-password=FORCE_PLUS_PERMANENT
3.重启MySQL
systemctl restart mysqld.service
二、配置密码定期更换
定期更换口令策略:由于定期修改密码,会涉及到应用一块更改,涉及到应用重启,不建议定期修改密码。
1、在/etc/my.cnf配置文件中增加
[mysqld]
default_password_lifetime=90 # 90天过期
2、重启MySQL
systemctl restart mysqld.service
三、MySQL数据库限制多次登录失败重试时间
需求:
如果连续5次输入密码错误,限制登录数据库30分钟 --次数和限制时间可以根据实际变更
解决方法(通过MySQL插件控制)
1、登录数据库,安装插件(CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS)
mysql -uroot -p
install plugin CONNECTION_CONTROL soname 'connection_control.so';
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';
2、查看所有已安装的插件
show plugins;
3、按需修改配置文件(/etc/my.cnf)
vim /etc/my.cnf
添加如下两行配置:
connection-control-failed-connections-threshold=5 #登陆失败次数限制
connection-control-min-connection-delay=1800000 #限制重试时间,此处为毫秒,注意按需求换算
重新启动MySQL(根据版本选择重启命令)
service mysqld restart 或 service mysql restart
4、重新登录数据库,查看配置是否生效
mysql -uroot -p
show variables like '%connection_control%';
5、验证
输错5次密码后,会发现第6次登录会卡住,限制登录,时间为设定的限制时间30分钟