【MySQL】登录密码连续错误锁定账户,Failed-Login Tracking 和 Temporary Account Locking密码策略

MySQL 8.0.19及更新版本,支持连续几次输入错误密码,锁定账户功能

FAILED_LOGIN_ATTEMPTS:代表尝试失败的次数

PASSWORD_LOCK_TIME:代表锁定的时间,单位天。

#指定策略和加密插件,连续输错2次后,锁定一天

CREATE USER `test`@`%` IDENTIFIED WITH mysql_native_password BY '123456' FAILED_LOGIN_ATTEMPTS 2 PASSWORD_LOCK_TIME 1;

#默认策略和加密插件

CREATE USER 'test'@'%' IDENTIFIED BY '123456' FAILED_LOGIN_ATTEMPTS 2 PASSWORD_LOCK_TIME 1;

#授权

GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create User, Create View, Delete, Drop, Event, Execute, File, Grant Option, Index, Insert, Lock Tables, Process, References, Reload, Replication Client, Replication Slave, Select, Show Databases, Show View, Shutdown, Super, Trigger, Update ON *.* TO `test`@`%`;

授权所有

mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';

 

Failed-Login Tracking and Temporary Account Locking 策略有以下几个需要注意的点:
1.failed_login_attempts 和 password_lock_time 必须同时不为 0 才能生效。
2.创建新用户不指定 failed_login_attempts 和 password_lock_time ,则默认关闭 这2个密码策略。
3.已使用failed_login_attempts 和 password_lock_time 密码策略的用户,管理员对其 alter user 后不改变原有密码验证策略。
4.一旦账户被锁定,即使输入正确密码也无法登录。
5.还有最重要的一点:由于 failed_login_attempts 和 password_lock_time 对密码验证正确与否的连续性,任意一次成功登录,failed_login_attempts 和 password_lock_time密码策略 计数器重置。
例如 failed_login_attempts 设置为 3 ,前两次密码连续输错,第三次输入正确的密码,FLTTAL 计数器重置。

 

锁定后管理员解锁账户

mysql -h 192.168.1.100 -u root -p
mysql> alter user test@'%' account unlock;

 

给已有的用户增加策略

创建无策略用户

CREATE USER `tt`@`%` IDENTIFIED WITH mysql_native_password BY '123456';

直接修改mysql.user表中的字段

UPDATE user SET User_attributes='{"Password_locking": {"failed_login_attempts": 2, "password_lock_time_days": 1}}' WHERE user='tt';

刷新权限

FLUSH PRIVILEGES;

 

MYSQL用户与权限管理,角色管理
https://blog.csdn.net/weixin_45902285/article/details/125228717

posted @ 2022-12-20 10:48  翠微  阅读(1147)  评论(0编辑  收藏  举报