用户口令强度校验机制
可获得性
本特性自openGauss 1.1.0版本开始引入。
特性简介
对用户访问数据库所设置的口令强度进行校验。
客户价值
用户无法设置过低强度的口令,加固客户数据安全。
特性描述
初始化数据库、创建用户、修改用户时需要指定密码。密码必须满足强度校验,否则会提示用户重新输入密码。账户密码复杂度要求如下:
- 包含大写字母(A-Z)的最少个数(password_min_uppercase)
- 包含小写字母(a-z)的最少个数(password_min_lowercase)
- 包含数字(0-9)的最少个数(password_min_digital)
- 包含特殊字符的最少个数(password_min_special)
- 密码的最小长度(password_min_length)
- 密码的最大长度(password_max_length)
- 至少包含上述四类字符中的三类。
- 不能和用户名、用户名倒写相同,本要求为非大小写敏感。
- 不能和当前密码、当前密码的倒写相同。
不能是弱口令。
说明: 弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别,用户需要自己添加定制化的弱口令。
参数password_policy设置为1时表示采用密码复杂度校验,默认值为1。
弱口令字典中的口令存放在gs_global_config系统表中(name字段为weak_password的记录是储存的弱口令),当创建用户、修改用户需要设置密码时,将会把用户设置口令和弱口令字典中存放的口令进行对比,如果命中,则会提示用户该口令为弱口令,设置密码失败。
弱口令字典默认为空,用户通过以下语法可以对弱口令字典进行增加和删除,示例如下:
CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('password1'), ('password2');
DROP WEAK PASSWORD DICTIONARY;
其中“password1”,“password2”是用户事先准备的弱口令,该语句执行成功后将会存入弱口令系统表中。
当用户尝试通过CREATE WEAK PASSWORD DICTIONARY 插入表中已存在的弱口令时,会只在表中保留一条该弱口令。
DROP WEAK PASSWORD DICTIONARY语句会清空整张系统表弱口令相关部分。
gs_global_config系统表没有唯一索引,不建议用户通过COPY FROM命令重复用相同数据对该表进行操作。
若用户需要对弱口令相关操作进行审计,应设置audit_system_object参数中的第三位为1。
特性增强
openGauss 1.1.0版本实现了弱口令字典功能。
特性约束
- 初始用户、系统管理员和安全管理员可以查看、新增、删除弱口令字典。
- 普通用户可以查看但是不能新增或者删除弱口令字典。
依赖关系
无。