1. 说明
MySQL 8.0 中推出了FLTTAL(Fail-Login Tracking and Temporary Account Locking),可以用来帮助我们提升账号的安全管理
2. 使用示例
#创建账号
create user test1@'localhost' identified by 'test' failed_login_attempts 3 password_lock_time 3;
#三次错误密码登录
[root@dm8 ~]# mysql -utest1 -p
Enter password:
ERROR 3955 (HY000): Access denied for user 'test1'@'localhost'. Account is blocked for 3 day(s) (3 day(s) remaining) due to 3 consecutive failed logins.
#解锁
alter user test1@'localhost' account unlock; (解锁后就可以使用)
3. 注意事项
a. failed_login_attempts 和 password_lock_time 必须同时不为 0 ,FLTTAL 才能生效。
b. 创建新用户不指定 failed_login_attempts 和 password_lock_time ,则默认关闭 FLTTAL 。
c. 已使用FLTTAL的用户,管理员对其 alter user 后不改变原有密码验证策略。
d. 一旦账户被锁定,即使输入正确密码也无法登录。
e. 还有最重要的一点:由于 FLTTAL 对密码验证正确与否的连续性,任意一次成功登录,FLTTAL 计数器重置。例如 failed_login_attempts 设置为 3 ,前两次密码连续输错,第三次输入正确的密码,FLTTAL 计数器重置。