密码配置说明
加载插件
修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库。
shared_preload_libraries = 'passwordcheck' #加载密码认证插
passwordcheck.enable=on #开启密码复杂度验证
密码复杂度
passwordcheck.password_length
kingbase.conf 中配置
口令的最小长度,取值范围为[8,63],缺省为 8。
passwordcheck.password_length =8
passwordcheck.password_condition_letter
kingbase.conf 中配置
口令至少包含几个字母,取值范围为[2,61],缺省为 2。
passwordcheck.password_condition_letter=2
passwordcheck.password_condition_digit
kingbase.conf 中配置
口令至少包含几个数字,取值范围为[2,61],缺省为 2。
passwordcheck.password_condition_digit = 2
passwordcheck.password_condition_punct
kingbase.conf 中配置
口令至少包含几个特殊字符,取值范围为[0,59],缺省为 0。其中特殊符号为除空白符、英文字母、单引号和数字外的所有可见字符。
passwordcheck.password_condition_punct = 1
口令有效期设置
password_change_interval
口令的更换周期,单位是天,0表示无限制,取值范围为[0,2147483647],缺省为 0。
指定密码创建用户时,可通过 password expire 选项指定该用户的口令更换周期,指定的口令更换周期必须晚于当前时间且早于更换周期 password_change_interval 指定的时间。
对已创建成功且已拥有密码的用户,也可通过alter语句的 password expire
选项修改其口令更换周期,但仅安全管理员有这个权限,其它用户无法修改自己及他人的口令更换周期。
若在创建用户或修改用户密码时未显示的通过password expire选项指定该用户的密码有效期,那么系统会根据
password_change_interval参数设定的值自动为其计算密码有效期。
identity_pwdexp.password_change_interval
密码有效期,单位是天,0表示无限制,取值范围为[0,INT_MAX],缺省为 7。
参数只能在postmaster启动或由安全管理员通过SQL语言(alter命令)进行设置。
语句:Alter system set 参数名 = 参数值;
修改后再运行select sys_reload_conf();不用重启服务器,对所有数据库及连接立即生效。
指定密码创建用户时,可通过 valid until 选项指定该用户的密码有效期,指定的密码有效期必须晚于当前时间且早于更换周期identity_pwdexp.password_change_interval 指定的时间。
对已创建成功且已拥有密码的用户,也可通过alter语句的 valid until
选项修改其密码有效期,但仅安全管理员有这个权限,其它用户无法修改自己及他人的口令更换周期。
若在创建用户或修改用户密码时未显示的通过 valid until 选项指定该用户的密码有效期,那么系统会根据 identity_pwdexp.password_change_interval参数设定的值自动为其计算密码有效期。
identity_pwdexp.max_password_change_interval
最大密码有效期,单位是天,取值范围为[1,INT_MAX],缺省为30。
参数只能在postmaster启动或由安全管理员通过SQL语言(alter命令)进行设置。
此参数用于限制密码有效期的设置范围,当设置的密码有效期大于最大密码有效期时,系统会报错提示。
修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库。
shared_preload_libraries = 'identity_pwdexp'
登录数据库后,切换system账户到test数据库中建立插件关联
\c test system#切换system用户到test库下
create extension identity_pwdexp;#建立identity_pwdexp插件关联
切换到安全员模式下查看默认密码有效期
\c test sso#切换安全员
show identity_pwdexp.password_change_interval;#查看密码有效期
切换到安全员模式下修改密码默认有效期并重新加载配置
\c test sso#切换安全员
alter system set identity_pwdexp.password_change_interval = 5;#设置密码有效期为5天
select sys_reload_conf();#重新加载配置
\c test system#切换system用户到test库下
CREATE USER USER1 PASSWORD '1234567890abC/.' VALID UNTIL '2022-05-01';
#创建一个有效期到2022-05-01的用户USER1 密码为1234567890abC/.
查看USER1的用户有效期
SELECT USENAME, VALUNTIL FROM SYS_USER WHERE USENAME ='USER1';
帐户异常登录锁定
修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库。
shared_preload_libraries = 'sys_audlog'
登录数据库后,切换system账户到test数据库中建立插件关联
\c test system#切换system用户到test库下
create extension sys_audlog;
sys_audlog.error_user_connect_times
允许用户连续登录失败的最大次数,用户登录失败的次数大于超过该值,用户自动锁定,取值范围为[0,INT_MAX],缺省为 0。
设置密码连续最大失败次数为 10。
\c test sso
ALTER SYSTEM SET sys_audlog.max_error_user_connect_times = 10;
CALL sys_reload_conf();
sys_audlog.max_error_user_connect_times
用户登录失败次数的最大值界限,error_user_connect_times的最大取值,取值范围为[0,INT_MAX],缺省为 2147483647。
设置密码连续最大失败次数为 6。
\c test sso
ALTER SYSTEM SET sys_audlog.error_user_connect_times = 6;
CALL sys_reload_conf();
sys_audlog.error_user_connect_interval
用户被锁定时间,若用户被锁定的时间超过了该参数,则该用户可自动解锁。单位是分钟,取值范围为[0,INT_MAX],0时关闭自动解锁功能,需手动解锁,缺省为 0。
V8R6金仓数据库解锁用户
V8R6金仓数据库解锁【KingbaseES】V8R6金仓数据库解锁用户的两种方法