MySQL 安全防护

来源:这里教程网 时间:2026-03-01 16:35:23 作者:

一、配置添加新用户密码复杂度检查 二、配置密码过期策略 三、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分钟

相关推荐