口令历史管理
口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。
KingbaseES通过插件的方式来进行口令历史管理。这种方式更为灵活,当数据库的实用场景需要进行口令历史管理时,加载插件即可。而不需要该功能时,卸载插件即可。 KingbaseES中通过 2 个全局级参数配合插件来实现用户口令历史管理。详情参见插件 passwordhistory 。
加载插件
修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库,创建插件并打开口令历史开关。
shared_preload_libraries = 'passwordhistory'
\c - system
create extension passwordhistory;
show passwordhistory.enable;
passwordhistory.enable
----------------------
off
(1 行记录)
alter system set passwordhistory.enable=on;
select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 行记录)
show passwordhistory.enable;
passwordhistory.enable
----------------------
on
(1 行记录)
参数配置
口令历史管理参数如下图所示:
示例如下:
\c - system
--打开开关
show passwordhistory.enable;
passwordhistory.enable
----------------------
off
(1 行记录)
alter system set passwordhistory.enable=on;
select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 行记录)
show passwordhistory.enable;
passwordhistory.enable
----------------------
on
(1 行记录)
--设置passwordhistory.password_time 口令历史天数,缺省为 0。
show passwordhistory.password_time;
passwordhistory.password_time
-------------------------------
0
(1 row)
alter system SET passwordhistory.password_time = 2;
call sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row)
SHOW passwordhistory.password_time;
passwordhistory.password_time
-------------------------------
2
(1 row)
create user test with password '123';
alter user test with password '123';
ERROR: The password has been used recently.