用户登录重试失败锁定指,设置锁定相关参数后,当因密码输入错误,登录失败超过参数 login_ attempt_times 中设置的重试次数后,会将用户记为 locked 状态,被锁定的用户在锁定时长期间用 gccli 登录时会报错;在到达锁定时长或者有权限用户手动执行解锁后,用户才能登录成功。在gbase.user_check表中能查看重试次数和锁定时长。
login_attempt_times 锁定次数
login_locked_time 锁定时间
login_locked__factor 惩罚因子
登录时长的计算方法为:记n=(连续登录失败次数 attempt) / login_attempt_times ,锁定时长= (n * login_locked time * login_locked_factor)。
可以通过这个式子看出,每当n+1,也就是每当 attempt 累加了 login_ attempt_times次,就会在之前的锁定时长上累加一个 login_locked time * login_locked_factor 长的时间
例如,设置参数为以下值:
login_attempt_times=3
login locked_time =30
login_locked_factor =2
那么连续登录失败3 次后,用户锁定,并且时长为 1+30*2=60min,之后继续尝试登录,会出现 account is locked 报错,在之后的第6 次重试,锁定时间更新为 (6/3)*30*2=120
min,在第9次后为 3*30*2=180min,在第12次后为 4*30*2=240min.
一次锁定过程如下
gbase> create user user1 identified by '111111';
Query OK, 0 rows affected (Elapsed: 00:00:00.01)
[gbase@localhost 192.168.122.1]$ gccli -uuser1 -p22222
ERROR 1045 (28000); Access denied for user user1'@1ocalhost’ (using password: YES)
[gbase@localhost 192.168.122.1]$ gacli -uuser1 -p22222
ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
[gbase@localhost 192.168.122.1]S gecli -uuser1 -p22222
ERROR 1825 (HY000): Access denied for user user1'@'%'. Account is locked.
[gbase@localhost 192.168.122.1]S gccli -uroot -pAdmin20110531
GBase client 9.5.3.29.1ce2ebf. Copyright (c) 2004-2023, GBase. All Right Reserved.
gbase> select host,user,attempt,last_attempt,locked from gbase.user_check where User=’user1’\G;
Host: %
User: user1
attempt: 3
last_attempt: 0
locked: Y
1 row in set (Elapsed: 00:00:00.00)
gbase> \q
Bye