MySQL数据库用户密码连续5次输入错误限定用户登录

为数据库安全第三方会进行渗透测试,为防止恶意暴力破解用户密码,在用户登录时密码连续输入错误一定次数后限定用户的登录。本文通过插件实现当用户连续输入5次错误密码后显示其登录。

连接控制插件

MySQL数据库自带连接控制插件,插件(connection_control.dll)位置位于安装目录相对路径(…\lib\plugin)下。connection_control
不清楚MySQL插件库的路径也可通过SQL查询插件库的路径信息;
plugin_url

插件安装

mysql> install plugin CONNECTION_CONTROL soname 'connection_control.dll';
mysql> install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.dll';

登录root用户执行以上命令,并查看插件默认的参数信息,如下图所示:
conn_con_para

部分参数说明

只列出部分主要参数说明
更详细参数信息请参看官网:https://dev.mysql.com/doc/refman/5.7/en/connection-control-variables.html

 #登陆失败次数限制
connection_control_failed_connections_threshold=5  
#限制重试时间,此处为毫秒,注意按需求换算(30分钟)
connection_control_min_connection_delay=1800000    	
修改默认参数配置

这里设置连续登录输入错误5次密码,限制3分钟不能登录,执行如下图所示:

mysql> set global connection_control_failed_connections_threshold=5;
mysql> set global connection_control_min_connection_delay=180000;

connection_min

登录测试

本次测试连续输入无此错误密码,提示密码错误,当第六次输入密码回车后,连接就被挂载起来,一直等到3分钟后才进行重试连接,如下图所示:
login_err

插件卸载

mysql> UNINSTALL PLUGIN CONNECTION_CONTROL;
mysql> UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;

执行以上命令后,退出账户重新登录,进行查看,结果表示插件已经卸载,如下图所示:
loginout_look

其他插件应用

插件配置参数详细参看:https://dev.mysql.com/doc/refman/5.7/en/connection-control-variables.html
MySQL数据库安全审计功能参看:https://blog.csdn.net/weixin_39699061/article/details/103482490
MySQL数据库密码安全策略参看:https://blog.csdn.net/weixin_39699061/article/details/103513863

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要为MySQL数据库用户授权登录密码,可以按照以下步骤进行操作: 1. 以管理员身份登录MySQL服务器。可以使用以下命令登录: ``` mysql -u root -p ``` 这将要求你输入管理员密码。 2. 登录成功后,使用以下命令授权用户可以通过密码登录: ``` ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将 `username` 替换为要授权的用户名,`localhost` 替换为连接主机的地址,`password` 替换为该用户登录密码。 3. 如果你要授权的是管理员账号的密码,可以使用以下命令: ``` ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将 `password` 替换为管理员账号的登录密码。 4. 授予用户访问和管理数据库的权限。可以使用以下命令为用户授予权限: ``` GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; ``` 将 `database_name` 替换为要授权给用户数据库名称,`username` 替换为要授权的用户名,`localhost` 替换为连接主机的地址。 5. 刷新权限使更改生效: ``` FLUSH PRIVILEGES; ``` 这将确保授权立即生效。 请注意,以上命令假设你已经具有足够的权限来进行这些操作。如果你没有足够的权限,请联系具有管理员权限的用户来执行这些操作。另外,授权用户的权限应根据需要进行适当的调整,以确保安全性和最小权限原则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值