1. 插件passwordcheck简介¶
passwordcheck插件主要用于管理口令复杂度。
口令的复杂度检查是由数据库安全员对口令的最小长度,所包含的数字、英文字母、特殊符号的数目进行设置后,在数据库管理员创建和修改用户时,自动对口令进行相关方面的检查。如果口令不满足指定的条件,那么创建用户将不成功。
KingbaseES通过插件的方式来进行口令的复杂度管理。这种方式更为灵活,当数据库的实用场景需要进行口令的复杂度管理时,加载插件即可。而不需要该功能时,卸载插件即可。
KingbaseES中通过 4 个全局级参数配合插件来实现用户口令复杂度管理。
-
插件名为 passwordcheck
-
插件版本 V1.0
2. 插件passwordcheck加载方式¶
在使用 passwordcheck 之前,我们需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。
示例:
shared_preload_libraries = 'passwordcheck'
3. 插件passwordcheck的参数配置¶
-
passwordcheck.enable
口令复杂度开关,默认为关闭状态。
-
passwordcheck.password_length
口令的最小长度,取值范围为[8,63],缺省为 8。
-
passwordcheck.password_condition_letter
口令至少包含几个字母,取值范围为[2,61],缺省为 2。
-
passwordcheck.password_condition_digit
口令至少包含几个数字,取值范围为[2,61],缺省为 2。
4. 插件passwordcheck的使用方法¶
加载passwordcheck插件后,在数据库管理员创建和修改用户时,自动对口令进行相关方面的检查。如果口令不满足指定的条件,那么创建用户将不成功。当不需要该功能时,卸载插件即可。
示例:
-- 打开口令复杂度开关 \c test system create extension passwordcheck; CREATE EXTENSION \c test sso show passwordcheck.enable; passwordcheck.enable ---------------------- off (1 行记录) alter system set passwordcheck.enable=on; ALTER SYSTEM select sys_reload_conf(); sys_reload_conf ----------------- t (1 行记录) show passwordcheck.enable; passwordcheck.enable ---------------------- on (1 行记录) -- 修改口令最小长度为10 \c test sso SHOW passwordcheck.password_length; passwordcheck.password_length ------------------------------- 8 (1 row) SET passwordcheck.password_length = 10; SHOW passwordcheck.password_length; passwordcheck.password_length ------------------------------- 10 (1 row) \c test system CREATE USER u_pwd PASSWORD '123ab'; ERROR: password length 5 is too short, should be longer than min password length 10. CREATE USER u_pwd PASSWORD '1234567890ab'; CREATE ROLE -- 修改口令最少包含3个字母 \c test sso SHOW passwordcheck.password_condition_letter; passwordcheck.password_condition_letter ----------------------------------------- 2 (1 row) SET passwordcheck.password_condition_letter = 3; SHOW passwordcheck.password_condition_letter; passwordcheck.password_condition_letter ----------------------------------------- 3 (1 row) \c test system ALTER USER u_pwd PASSWORD '1234567890'; ERROR: Password should contain at least 3 letter and the current number is 0 ALTER USER u_pwd PASSWORD '1234567890ab'; ERROR: Password should contain at least 3 letter and the current number is 2 ALTER USER u_pwd PASSWORD '1234567890abC'; ALTER ROLE -- 修改口令最少包含3个数字 \c test sso SHOW passwordcheck.password_condition_digit; passwordcheck.password_condition_digit ---------------------------------------- 2 (1 row) SET passwordcheck.password_condition_digit = 3; SHOW passwordcheck.password_condition_digit; passwordcheck.password_condition_digit ---------------------------------------- 3 (1 row) \c test system ALTER USER u_pwd PASSWORD 'abcdefghij'; ERROR: Password should contain at least 3 digit and the current number is 0 ALTER USER u_pwd PASSWORD 'abcdefghij123'; ALTER ROLE -- 修改口令最少包含3个特殊字符 \c test sso SHOW passwordcheck.password_condition_punct; passwordcheck.password_condition_punct ---------------------------------------- 0 (1 row) SET passwordcheck.password_condition_punct = 2; SHOW passwordcheck.password_condition_punct; passwordcheck.password_condition_punct ---------------------------------------- 2 (1 row) \c test system ALTER USER u_pwd PASSWORD '1234567890abc.'; ERROR: Password should contain at least 2 punct and the current number is 1 ALTER USER u_pwd PASSWORD '1234567890abc./'; ALTER ROLE
5. 插件passwordcheck卸载方法¶
修改 kingbase.conf 文件中shared_preload_libraries参数后重启数据库。
示例:
shared_preload_libraries = ''
6. 插件passwordcheck升级方法¶
passwordcheck扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级插件。