Kingbase SSO 账号锁定

注意:这里是三权分立里的 sso 安全管理员账号,不是单点登录 SSO。锁定由 sys_audlog 审计插件控制:连续密码错误达到阈值触发锁定,支持自动解锁或手动解锁北京人大金...

一、两种锁定类型

  1. 登录失败锁定(sys_audlog 插件):连续输错密码,触发锁定,可配置自动解锁时长
  2. 角色禁用(NOLOGIN):手动执行 ALTER ROLE sso NOLOGIN;,永久禁止登录,不会自动恢复

二、查看 sso 账号状态

1. 查看账号是否 NOLOGIN(基础)

select usename,rolcanlogin from sys_user where usename='sso';
-- rolcanlogin = f → 账号被禁用(无法登录)

2. 查看登录失败锁定记录(sys_audlog 插件)

select * from sys_audit_blocklog;

该视图能看到:被锁定用户、锁定时间、失败次数、锁定到期时间金仓社区

3. 查看锁定相关参数

show sys_audlog.error_user_connect_times;    -- 最大错误次数,0=不开启锁定
show sys_audlog.error_user_connect_interval; -- 锁定时长(分钟),0=永久锁,只能手动解锁

三、解锁操作(重点,三权分立权限约束)

⚠️ 三权分立环境限制:

  • sso 账号被锁定,system 管理员不能直接修改 sso 账号属性!
  • 优先等待自动解锁;若要手动解锁,能解锁 sso 的只能是 sso 自己(未锁时),或者部分版本需要特殊处理
  • 普通用户的账号,只能 sso 去解锁

方式 1:等待自动解锁(最简单,推荐优先试)

参数 sys_audlog.error_user_connect_interval 设置了锁定多少分钟自动解锁。到期后,登录成功一次就重置失败计数。

坑:解锁时间到后,不带 - W 参数登录会自动空密码尝试,直接再次触发锁定,登录必须带 - W:

ksql -U sso -d 库名 -W

方式 2:手动解锁(账号被置为 NOLOGIN,或 interval=0 永久锁定)

  1. 如果 sso 只是普通用户(未开启三权分立):system 可以解锁
ALTER ROLE sso WITH LOGIN;
  1. 开启三权分立 sepapower 插件场景 system 无权修改 sso 角色,有两条路径:
  • 方案 A:修改 kingbase.conf,临时关闭 sepapower,重启库,解锁后再打开(生产谨慎操作,需要停机)
  • 方案 B:如果还有其他可用 sso 备用账号,用备用 sso 登录执行解锁

四、sys_audlog 插件开启锁定功能完整配置

  1. kingbase.conf 增加插件,重启实例
shared_preload_libraries = 'sys_audlog'
  1. 登录创建插件
CREATE EXTENSION sys_audlog;
  1. sso 账号配置锁定策略
alter system set sys_audlog.error_user_connect_times=5;    -- 连续5次错误锁定
alter system set sys_audlog.error_user_connect_interval=30;-- 锁定30分钟自动解锁
call sys_reload_conf();

posted on 2026-10-14 09:11  coding早鸟  阅读(18)  评论(0)    收藏  举报