关键字:
安全;账户登录信息显示;人大金仓、KingbaseES
概述
账户登录信息显示则会在用户登录数据库时给出用户一些提示信息,如此次登录信息、最后一次成功登录信息、此次登录与上次登录之间登录失败的次数、最近一次尝试登录的信息等。详情参见插件 sys_audlog 。
特性实际操作
在kingbase.conf中增加插件sys_audit_userlog
create extension sys_audlog;
--切换 sso 用户
\c - sso
You are now connected to database "test" as user "sso".
--设置既记录用户成功登陆信息又记录失败登录信息
alter system set sys_audlog.user_logonlog_level = 2;
select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row)
--退出
\q
You have mail in /var/spool/mail/test
--再次使用 system 用户登录,显示用户登录信息
ksql test -U system -p 54344
ksql (V8.0)
Type "help" for help.
WARNING:License file will expire in 2 days.
This time login information:
User Name: system
Host: [local]
Login Time: 2022-06-17 00:20:46.936437+08
This is your first time login.
The fail times between this login and the last login: 0
The password's expire time is not set.
’
普通用户可通过 sys_user_audit_userlog 查看本用户的登录信息。管理员查看最近登录的 10 条信息。
select * from sysaudit.sys_audit_userlog order by audtimestamp desc limit 10;
• 系统函数 sys_del_user_logonlog_before_days
安全员可删除指定天数之前的登录信息。例如,安全员删除 30 天以前的用户登录信息:
SELECT sys_audlog.sys_del_user_logonlog_before_days(30);
• 系统函数 sys_del_user_logonlog_by_ip
安全员可删除指定 IP 地址的用户登录信息。例如,安全员删除 IP 为 127.0.0.1 的用户登录信息:
SELECT sys_audlog.sys_del_user_logonlog_by_ip('127.0.0.1');
• 系统函数 sys_del_user_logonlog_by_name
安全员可删除指定用户的登录信息。例如,安全员删除用户 user1 的登录信息:
SELECT sys_audlog.sys_del_user_logonlog_by_name('user1');
使用经验及注意事项
直接加载插件之后重启,然后根据提示来即可。
注意账户登录信息显示这个功能在安全指南上的问题,sys_user_audit_userlog找不到,并且手册中说安全员可操作的语句实际上sso没有权限,反而system有权限。
已经解决,手册问题。
表应该用 select * from sys_audlog.sys_user_audit_userlog;查询
后面的是system实际拥有权限,与手册不符,具体是功能问题还是手册问题暂且未知。
价值评价
此特性可以帮助管理员对其他账户的管理。可以知晓其登录时间,用了多久,是否离开,状态判断等。
参考资料
《KingbaseES 安全指南》




