重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: MySQL的Connection-Control介绍 [打印本页]

作者: jiawang    时间: 2025-6-20 13:52
标题: MySQL的Connection-Control介绍
MySQL提供了一个名为Connection-Control的插件,用于控制客户端在登录操作连续失败一定次数后的响应延迟。这一功能有助于防止暴力登录攻击。插件包含两个组件:CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS。


CONNECTION_CONTROL组件用于设定登录失败次数限制和延迟响应时间。CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS表则记录了所有连续失败登录操作的客户端。在MySQL 8.0.18版本中,可通过以下步骤安装和配置插件:


首先,查看系统变量plugin_dir以找到插件所在路径。然后,安装插件并检查安装状态。接着,设置系统变量,包括登录失败次数限制(默认值为3)、重试时间最大值(默认值为2147483647毫秒)和最小值(默认值为1秒)。


注意事项:connection_control_min_connection_delay值必须小于connection_control_max_connection_delay,并且connection_control_max_connection_delay不能小于connection_control_min_connection_delay的值。命令方式设置的全局系统变量在服务器重启后会丢失,因此建议在参数文件my.cnf中设置全局系统变量。


当连续三次输错密码后,客户端的登录请求将被挂起,直至第四次输入正确密码。
MySQL服务重启后,INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS中的数据将被清空。为了使用CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS表,必须激活CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件和CONNECTION_CONTROL插件。


该表仅包含进行过一次或多次连续失败连接尝试且没有随后成功尝试的客户端行。当客户端成功连接时,其失败连接计数将重置为零,服务器会删除与该客户端对应的行。如果在运行时为connection_control_failed_connections_threshold系统变量分配一个值,则会将所有累积的失败连接计数器重置为零,导致表变空。


若要解除账号延迟响应限制,可以选择以下方法:


1. 重启MySQL实例。


2. 调整系统变量connection_control_failed_connections_threshold的值。


3. 卸载插件。


综上所述,MySQL的Connection-Control插件提供了有效的客户端登录控制机制,有助于保护系统免受暴力登录攻击。通过合理配置插件,可以实现对登录失败次数的控制和对登录延迟时间的管理,从而保障系统的安全性和稳定性。






欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2