关键字:
安全;口令历史管理;人大金仓;KingbaseES
概述
口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。
KingbaseES 通过插件的方式来进行口令历史管理。这种方式更为灵活,当数据库的实用场景需要进行口令历史管理时,加载插件即可。而不需要该功能时,卸载插件即可。KingbaseES 中通过 2 个全局级参数配合插件来实现用户口令历史管理。详情参见插件 passwordhistory 。代码类示例贴在表格中,示例要完整,可直接复制执行
特性实际操作
口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。
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 行记录)
--设置 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.
价值评价
此特性可以进行口令的历史检查。在设置之后,如果修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。
可以提升安全性,以防密码在短时间被篡改。或者可以根据实际一些特殊的场景提供此功能。
注意一下,其中有个 SET passwordhistory.password_time = 2; 应改为alter system SET passwordhistory.password_time = 2;
参考资料
《KingbaseES 安全指南》