MySQL启/停 登录失败处理功能

写在开头
最近在处理了安全加固的问题,有一条要求如下:
可采取结束会话、限制非法登录次数和自动退出等措施经核查,执行showlike ‘%%’,结果为: Value值为0,未设置登录失败处理功能
看要求是要设置登录失败功能 。对处理过程做个简单的记录 。欢迎交流学习
1.启用登录失败处理功能 插件动态安装启用
【MySQL启/停 登录失败处理功能】mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
验证是否安装
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINSWHERE PLUGIN_NAME LIKE 'connection%';mysql> SHOW PLUGINS;

MySQL启/停 登录失败处理功能

文章插图
查看默认相关变量
mysql> show variables like 'connection_control%';+-------------------------------------------------+------------+| Variable_name| Value|+-------------------------------------------------+------------+| connection_control_failed_connections_threshold | 3|| connection_control_max_connection_delay| 2147483647 || connection_control_min_connection_delay| 1000|+-------------------------------------------------+------------+
自定义配置
mysql> SET GLOBAL connection_control_failed_connections_threshold = 9;mysql> SET GLOBAL connection_control_min_connection_delay = 1000;mysql> SET GLOBAL connection_control_max_connection_delay = 86400;
再次查看检验自定义配置是否生效
mysql> show variables like 'connection_control%';
MySQL启/停 登录失败处理功能

文章插图
失败尝试的次数,默认为3,表示当连接失败3次后启用连接控制,0表示不开启
响应延迟的最大时间,默认约25天
响应延迟的最小时间,默认1000微秒,1秒
这些内容也可以写在配置文件内这样重启mysql服务后依然有效 。
停用登录失败处理功能,并检验
##卸载mysql> UNINSTALL PLUGIN CONNECTION_CONTROL;mysql> UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;##检验插件mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINSWHERE PLUGIN_NAME LIKE 'connection%';##检验配置mysql> show variables like 'connection_control%';