KingbaseES数据库用户管理--如何设置用户密码有效期?

关键字:

KingbaseES,用户,密码,有效期

1. 问题

如何设置KingbaseES数据库用户密码有效期?

2. 关于用户密码有效期

KingbaseES的用户管理中含有密码有效期这一属性,用户密码过期检查就是通过设置用户密码的有效期,在用户密码过期后限制用户登录数据库,并输入新密码的功能。

3. 设置用户密码有效期

KingbaseES通过插件的方式来进行用户密码过期检查,设置用户密码有效期。这种方式更为灵活,当数据库的实用场景需要进行用户密码过期检查时,加载插件即可。而不需要该功能时,卸载插件即可。

KingbaseES中通过 1 个全局级参数配合插件来实现用户密码过期检查。

3.1. 加载插件

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

shared_preload_libraries = 'identity_pwdexp'

加载插件后,需要重启数据库,创建密码过期检查插件:

create extension identity_pwdexp;
CREATE EXTENSION

3.2. 配置密码有效期参数

3.2.1.设置密码有效期

KingbaseES用户密码有效期通过identity_pwdexp.password_change_interval参数配置,单位是天,取值范围为[0,INT_MAX],0表示无限制,缺省为 7。

参数只能在postmaster启动或由安全管理员通过SQL语言(alter命令)进行设置。例如:

alter system set identity_pwdexp.password_change_interval = 参数值

修改后需运行:

select sys_reload_conf();

不用重启服务器,即对所有数据库及连接生效。例如:

show identity_pwdexp.password_change_interval;
identity_pwdexp.password_change_interval
-------------------------------------------------------------------------
7
(1 row)
alter system set identity_pwdexp.password_change_interval = 5;
ALTER SYSTEM

show identity_pwdexp.password_change_interval;
identity_pwdexp.password_change_interval
-------------------------------------------------------------------
0
(1 行记录)
select sys_reload_conf();
sys_reload_conf
-------------------------
t
(1 行记录)
show identity_pwdexp.password_change_interval;
identity_pwdexp.password_change_interval
--------------------------------------------------------------------------
5
(1 行记录)

当指定密码创建用户时,可通过 valid until 选项指定该用户的密码有效期,指定的密码有效期必须晚于当前时间且早于更换周期 identity_pwdexp.password_change_interval 指定的时间。

对已创建成功且已拥有密码的用户,也可通过alter语句的 valid until选项修改其密码有效期,但仅安全管理员有这个权限,其它用户无法修改自己及他人的密码更换周期。

call now();
             Now
-----------------------------------------------------------------
2020-04-30 15:34:30.408304+08
(1 行记录)
CREATE USER u_pwd_et PASSWORD '1234567890abC/.' VALID UNTIL '2020-05-01';
CREATE ROLE

SELECT USENAME, VALUNTIL FROM SYS_USER WHERE USENAME ='u_pwd_et';
usename  |        valuntil
---------------+------------------------
u_pwd_et  | 2020-05-01 00:00:00+08
(1 行记录)

若在创建用户或修改用户密码时未显示的通过 valid until 选项指定该用户的密码有效期,那么系统会根据 identity_pwdexp.password_change_interval参数设定的值自动为其计算密码有效期。

ALTER USER u_pwd_et PASSWORD '/.1234567890abC';
警告:  user "u_pwd_et" does not be locked
ALTER ROLE

SELECT USENAME, VALUNTIL FROM SYS_USER WHERE USENAME ='u_pwd_et';
usename  |           valuntil
---------------+-------------------------------
u_pwd_et  | 2020-05-05 15:35:23.448381+08
(1 行记录)

3.2.2.限制密码有效期的设置范围

KingbaseES最大密码的有效期通过identity_pwdexp.max_password_change_interval参数配置,单位是天,取值范围为[1,INT_MAX],缺省为30。

此参数用于限制密码有效期的设置范围,当设置的密码有效期大于最大密码有效期时,系统会报错提示。

3.3. 卸载插件

当用户不需要密码过期检查功能时,用户可通过修改 kingbase.conf 文件中identity_pwdexp参数,卸载插件:

shared_preload_libraries = ''

卸载插件时,重启数据库后方生效。

参考

《安全指南》

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值