mysql8.0之 Failed-Login Tracking 和 Temporary Account Locking密码策略
文章出处: https://mp.weixin.qq.com/s/6Mh3KxZH1G1M8-9a0OR7cg
如有侵权,及时通知下,本博主进行删除,谢谢
mysql8.0之 Failed-Login Tracking 和 Temporary Account Locking密码策略
MySQL 从 8.0.19 开始,推出了2个策略:Failed-Login Tracking and Temporary Account Locking 简单翻译就是失败登录追踪和临时账户锁定
和其他的密码策略不一样 这2个策略Failed-Login Tracking and Temporary Account Locking 没有全局参数可以配置,只能在创建用户或者是更改用户属性时被匹配。
有两个选项:
Failed-Login Tracking and Temporary Account Locking 策略有以下几个需要注意的点:
- failed_login_attempts 和 password_lock_time 必须同时不为 0 才能生效。
- 创建新用户不指定 failed_login_attempts 和 password_lock_time ,则默认关闭 这2个密码策略。
- 已使用failed_login_attempts 和 password_lock_time 密码策略的用户,管理员对其 alter user 后不改变原有密码验证策略。
- 一旦账户被锁定,即使输入正确密码也无法登录。
- 还有最重要的一点:由于 failed_login_attempts 和 password_lock_time 对密码验证正确与否的连续性,任意一次成功登录,failed_login_attempts 和 password_lock_time密码策略 计数器重置。例如 failed_login_attempts 设置为 3 ,前两次密码连续输错,第三次输入正确的密码,FLTTAL 计数器重置。
那接下来我们来看下如何具体使用这个密码验证策略:
对于普通用户的使用方法:
不支持小数,而且 目前测试也不知道秒和分钟 默认就是锁定账户的单位时间为天
root@tidb05 22:20: [test001]> create user jianwei@‘localhost’ identified by ‘jianwei’ failed_login_attempts 3 password_lock_time 0.00138889;
ERROR 1064 (42000): Only integers allowed as number here near ‘0.00138889’ at line 1
管理员解锁账户方能正常使用:(或者忘记密码,让管理员解锁账号并且重置新密码)
用户账号被锁定并且禁止登录后,除了管理员通过手动解锁重置计数器外,还可以有以下几种方法重置计数器:
1.MySQLD 服务重启。
2.执行 FLUSH PRIVILEGES,对用户权限数据刷盘。
3.一次成功的账户登录。
4.锁定时间过期。例如锁定时间为 7 天,7 天内管理员没做任何处理,FLTTAL 计数器重置。
5.管理员重新更改 failed_login_attempts 或者 password_lock_time 选项,FLTTAL 计数器重置。