Kingbase SSO 账号锁定
注意:这里是三权分立里的 sso 安全管理员账号,不是单点登录 SSO。锁定由
sys_audlog审计插件控制:连续密码错误达到阈值触发锁定,支持自动解锁或手动解锁北京人大金...
一、两种锁定类型
- 登录失败锁定(sys_audlog 插件):连续输错密码,触发锁定,可配置自动解锁时长
- 角色禁用(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 永久锁定)
- 如果 sso 只是普通用户(未开启三权分立):system 可以解锁
ALTER ROLE sso WITH LOGIN;
- 开启三权分立 sepapower 插件场景 system 无权修改 sso 角色,有两条路径:
- 方案 A:修改 kingbase.conf,临时关闭 sepapower,重启库,解锁后再打开(生产谨慎操作,需要停机)
- 方案 B:如果还有其他可用 sso 备用账号,用备用 sso 登录执行解锁
四、sys_audlog 插件开启锁定功能完整配置
- kingbase.conf 增加插件,重启实例
shared_preload_libraries = 'sys_audlog'
- 登录创建插件
CREATE EXTENSION sys_audlog;
- 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();
浙公网安备 33010602011771号