1. 问题:如何配置帐户异常登录锁定功能?

2. 什么是帐户异常登录锁定?

帐户异常登录锁定是指如果用户连续若干次不能正确的登录数据库,那么这个用户的帐户将被系统禁用。

系统允许的用户连续错误登录次数由数据库管理员指定。被禁用的帐户可以由安全员利用 SQL 命令使其重新可用或者等待一段时间自动解锁。

3. KingbaseES帐户异常登录锁定管理

KingbaseES通过插件的方式来进行帐户异常登录锁定以及账户登录信息显示。这种方式更为灵活,当数据库的实用场景需要进行帐户异常登录锁定以及账户登录信息显示时,加载插件即可。而不需要该功能时,卸载插件即可。

3.1. 加载插件

KingbaseES数据库通过修改kingbase.conf文件中 shared_preload_libraries参数来加载插件:

shared_preload_libraries = 'sys_audlog'

加载插件后,需要重启数据库,创建插件:

create extension sys_audlog;
CREATE EXTENSION

3.2. 配置帐户异常登录锁定参数

3.2.1.允许用户连续登录失败的最大次数

允许用户连续登录失败的最大次数通过参数sys_audlog.error_user_connect_times配置,用户登录失败的次数大于超过该值,用户自动锁定,取值范围为[0,INT_MAX],缺省为 0。

设置密码连续最大失败次数为10:

ALTER SYSTEM SET sys_audlog.max_error_user_connect_times = 10;
CALL sys_reload_conf();

3.2.2.用户登录失败次数的最大值界限

用户登录失败次数的最大值界限通过参数sys_audlog.max_error_user_connect_times配置,error_user_connect_times的最大取值,取值范围为[0,INT_MAX],缺省为 2147483647。

设置密码连续最大失败次数为6:

ALTER SYSTEM SET sys_audlog.error_user_connect_times = 6;
CALL sys_reload_conf();

3.2.3.设置用户被锁定时间

用户被锁定时间通过参数sys_audlog.error_user_connect_interval配置,若用户被锁定的时间超过了该参数,则该用户可自动解锁。单位是分钟,取值范围为[0,INT_MAX],缺省为 0。

设置被封锁用户的自动解封时间为 1 小时:

ALTER SYSTEM SET sys_audlog.error_user_connect_interval = 60;
CALL sys_reload_conf();

3.3. 解除锁定

当超过所设置用户被锁定时间地时间间隔后,系统将自动解除用户封锁。

也可由具有alter user权限的用户通过SQL语句进行手动解锁,解锁后用户登录的信息自动删除。

alter user username with login;

3.4. 相关接口

可以通过系统表sys_audit_blocklog,查看用户的封锁信息:

select * from sys_audit_blocklog;