人大金仓数据库KingbaseES-sys_audlog:异常登录锁定及登录信息显示

金仓数据库KingbaseES-sys_audlog:异常登录锁定及登录信息显示

关键字:

KingbaseES、sys_audlog、异常登录锁定、登录信息显示、人大金仓

sys_audlog插件简介

sys_audlog是一个Kingbase的扩展插件,加载此插件后可以实现账户异常登录后的锁定,以及账户登录信息的显示。如果需要使用插件,需要先在数据库data目录下的kingbase.conf中将插件名”sys_audlog”加入shared_preload_libraries中,然后重新启动数据库。system用户登录数据库之后通过create extension语句加载sys_audlog插件。

sys_audlog包含以下几个参数,相关参数由sso负责配置:

参数名类型取值范围及默认值描述
sys_audlog.error_user_connect_intervalINT[0, INT_MAX]默认为0用户被锁定时间,用户锁定时间超过此值可以重新登录,单位为分钟,0表示关闭到时自动解锁,需要手动解锁。
sys_audlog.error_user_connect_timesINT[0, INT_MAX]默认为0用户连续登录失败的最大次数。
sys_audlog.max_error_user_connect_timesINT[0, INT_MAX]默认为INT_MAX登录失败次数的最大值。
sys_audlog.user_logonlog_levelINT[0, 2]默认为0记录登录信息的内容:0 表示不记录任何用户的登录信息;1 表示只记录用户成功登录的信息;2 表示记录用户登录成功和失败的信息。

异常登录锁定

    1. 使用方法、

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

\c – sso

alter system set sys_audlog.max_error_user_connect_times = 5;

call sys_reload_conf();

设置用户连续登录最大次数:

\c – sso

alter system set sys_audlog.max_error_user_connect_times = 5;

call sys_reload_conf();

设置用户被锁定时间:

\c - sso

ALTER SYSTEM SET sys_audlog.error_user_connect_interval = 10;

CALL sys_reload_conf();

解锁被锁定用户:

alter user username with login;

登录失败后会提示登录失败信息

file

查看当前被记录的用户登录失败的信息

file

登录次数达到限制后,会提示被锁定时间:

file

    1. 实现原理

在进行认证时会进入函数ClientAuthProcess中,然后通过TimeCheck_hook触发登录次数相关的检查,检查的大致流程如下:

TimeCheck_hook (AuthFailed_TimeCheck)

用户名无效?备用服务器?walsender?eserep?

if(认证失败)

AuditBlocklogFailedTimesUpdate更新失败次数

if(失败次数>error_user_connect_times && 锁定时间 > 阻塞间隔)

阻止登录

if(显示用户登录信息功能开启)

将数据记录在表sys_audit_userlog中

if(认证成功 && 错误次数 !=0)

AuditBlocklogFailedTimesDelete失败次数清零

if(阻止登录)

显示用户被锁定,设置了时间间隔则显示等待时间

登录信息显示

    1. 使用方法

设置显示登录信息:

\c – sso

alter system set sys_audlog.user_logonlog_level = 2; select sys_reload_conf();

改参数可设置为0、1、2,分别显示不同信息,0 表示不记录任何用户的登录信息;1 表示只记录用户成功登录的信息;2 表示记录用户登录成功和失败的信息。

    1. 实现原理

在进行认证时会后端会进入函数ClientAuthProcess中,然后通过TimeCheck_hook触发记录登录信息相关功能,检查的大致流程如下:

TimeCheck_hook (AuthFailed_TimeCheck)

……

if(显示用户登录信息功能开启)

将数据记录在表sys_audit_userlog中

……

认证登录时,前端会进入函数ShowLogonInfo,通过自动执行sql语句获取系统中记录的登录信息,并显示给用户。大致流程如下:

ShowLogonInfo

执行sql获取信息

检查证书有效期

检查sys_authlog插件正常加载

获取user_logonlog_level:0不显示信息,1显示登录成功信息,2显示两次登录成功间的失败次数

通过执行sql获取登录信息并显示

参考资料

《KingbaseES产品手册 3.2.2.5. 帐户异常登录锁定》 更多信息,参见https://help.kingbase.com.cn/v8/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值