kingbase数据库密码复杂度和有效期策略开启

金仓数据库(KingbaseES)提供了全面的密码安全管理策略,包括密码加密、复杂度检查和有效期管理,以下是详细的策略说明:

一、密码加密策略

金仓数据库支持多种密码加密算法,通过配置参数password_encryption控制用户口令的加密方式。默认采用scram-sha-256加密算法,这是目前最安全的认证方式之一。支持的加密算法包括:

  • scram-sha-256:基于RFC 7677标准,提供更强的安全性
  • md5:MD5哈希加密,兼容性较好
  • sm3:国密算法
  • sm4:国密算法
  • scram-sm3:基于国密SM3的SCRAM认证

用户口令以密文形式存储在sys_authid系统表中,可通过SQL命令create useralter user进行管理。金仓还提供密码配置工具sys_encpwd,可以将用户密码以密文形式存储在.encpwdencpwd.conf文件中,进一步提升安全性。

二、密码复杂度策略

金仓数据库通过passwordcheck插件实现密码复杂度检查,需要先加载插件并配置相关参数:

1. 加载插件

kingbase.conf文件中配置:

shared_preload_libraries = 'passwordcheck'

重启数据库后创建扩展:

create extension passwordcheck;

2. 核心复杂度参数

参数名称 取值范围 默认值 说明
passwordcheck.enable true/false false 复杂度功能开关
passwordcheck.password_length [8,63] 8 密码最小长度
passwordcheck.password_condition_letter [2,61] 2 最少包含字母数
passwordcheck.password_condition_digit [2,61] 2 最少包含数字数
passwordcheck.password_condition_punct [0,59] 0 最少包含特殊字符数

特殊符号定义为除空白符、英文字母、单引号和数字外的所有可见字符。

3. 其他安全策略

  • 禁止简单常见单词passwordcheck.password_condition_simple = off
  • 禁止密码与用户名相同passwordcheck.password_condition_user = off
  • 密码重复使用间隔password_time = 1(单位:天)
  • 登录失败锁定error_user_connect_times = 3(错误次数)
  • 自动解锁时间error_user_connect_interval = 2(单位:分钟)

三、密码有效期策略

金仓数据库通过identity_pwdexp插件实现密码有效期管理:

1. 加载插件

kingbase.conf文件中配置:

shared_preload_libraries = 'identity_pwdexp'

重启数据库后创建扩展:

create extension identity_pwdexp;

2. 有效期参数

参数名称 类型 范围 默认值 说明
identity_pwdexp.password_change_interval INT [1,INT_MAX] 30 密码有效期(天)
identity_pwdexp.max_password_change_interval INT [1,INT_MAX] 30 最大密码有效期(天)
identity_pwdexp.enable_common_user_autoset_interval BOOL ON/OFF ON 自动设置用户密码有效期

3. 工作机制

  • 自动设置:开启后,创建或修改用户密码时,系统会自动设置密码有效期为当前时间加上password_change_interval设定的值
  • 手动设置:关闭自动设置后,可通过VALID UNTIL子句手动设置密码有效期
  • 有效期检查:用户登录时会检查密码是否过期,过期后限制登录并要求修改密码

四、配置示例

1. 密码复杂度配置

-- 开启复杂度检查
alter system set passwordcheck.enable = on;

-- 设置复杂度要求
alter system set passwordcheck.password_length = 10;
alter system set passwordcheck.password_condition_letter = 3;
alter system set passwordcheck.password_condition_digit = 3;
alter system set passwordcheck.password_condition_punct = 2;

-- 重新加载配置
select sys_reload_conf();

2. 密码有效期配置

-- 设置密码有效期为90天,最大有效期为180天
alter system set identity_pwdexp.password_change_interval = 90;
alter system set identity_pwdexp.max_password_change_interval = 180;
select sys_reload_conf();

这些策略可以显著提升金仓数据库的密码安全性,满足等保、密评等合规要求。

posted @ 2026-01-07 16:32  栖木hy  阅读(283)  评论(0)    收藏  举报