设置密码安全策略
GaussDB设置了完善的密码安全策略,保证帐户的使用安全。
用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。
查看已配置的加密算法。
show password_encryption_type;
password_encryption_type
--------------------------
1
(1 row)
-
说明:
1表示采用SHA256方式对密码加密。
0表示采用md5方式对密码加密。md5为不安全的加密算法,不建议使用。 -
如果显示结果为0,执行如下命令设置为安全的加密算法。
gs_guc reload -c password_encryption_type=1
- 注意:
为防止用户密码泄露,在执行CREATE USER/ROLE命令创建数据库用户时,不能指定UNENCRYPTED属性,即新创建的用户的密码只能是加密存储的。
配置密码安全参数
安全策略主要分为密码复杂度、密码重用和密码修改三个部分,详细信息请参见表1。
表1 密码安全策略配置项
配置项 | 描述 | 命令 |
密码复杂度 | 初始化数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂度检查,否则会提示用户重新输入密码。 帐户密码的复杂度要求如下: 1.至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(具体请参见表2)四类字符中的三类字符。 2.最少8个字符。 3.不能和用户名相同。 4.不能和当前密码相同。 | 系统自动配置,不支持用户配置。 |
密码重用 | 用户修改密码时,只有超过不可重用天数(password_reuse_time)或不可重用次数(password_reuse_max)后,密码才可以使用。 说明: 不可重用天数默认值为60天,不可重用次数默认值是0。这两个参数值越大越安全,但是在使用过程中会带来不便,其默认值符合安全标准,您可以根据需要重新设置参数,提高安全等级。 1.由于密码复杂度决定了修改密码不能和当前密码相同,因此即使password_reuse_max参数为0,修改密码也不能和当前密码相同。 2.用户修改的密码只需要满足一个条件即可认为密码可以重用。 3.密码过期时间判断与系统绝对时间有关。当调整系统时间时,会影响对密码过期时间的判断。将时间往前调整,会导致密码过期时间相对延长,时间往后调整,则会导致密码过期时间相对缩短。(防黑客,故障处理) | 配置password_reuse_time参数。 1.查看已配置的参数。 POSTGRES=# show password_reuse_time; password_reuse_time --------------------- 60 (1 row) 2.如果显示结果不为60,执行如下命令设置成默认值60(不建议设置为0,即使需要设置也要将所有集群节点中的password_reuse_time都设置为0才能生效)。 gs_guc reload -c password_reuse_time=60 配置password_reuse_max参数。 1.查看已配置的参数。 POSTGRES=# show password_reuse_max; password_reuse_max -------------------- 0 (1 row) 如果显示结果不为0,执行如下命令设置成默认值0。 gs_guc reload -c password_reuse_max=0 |
密码修改 | 普通用户可以定期更改自己的帐户密码,以避免帐户密码被非法窃取。 | 以修改用户user1密码为例,命令格式如下: ALTER USER user1 IDENTIFIED BY "1234@abc" replace "5678@def"; 说明: 1234@abc、5678@def分别代表用户user1的新密码和原始密码,这些密码要符合规则,否则会执行失败。 |
管理员可以修改自己的或者其他帐户的密码。通过修改其他帐户的密码,解决用户密码遗失所造成无法登录的问题。 说明: 管理员是数据库的系统管理员,修改自己的或者其他帐户(普通用户或者其他系统管理员)的帐户密码时需要指定原始密码。 | 以修改用户user_read帐户密码为例,命令格式如下: ALTER USER user_read IDENTIFIED BY "abc@1234"; |
表2 非字母数字字符
编号 | 字符 | 编号 | 字符 | 编号 | 字符 | 编号 | 字符 |
1 | ~ | 9 | * | 17 | | | 25 | < |
2 | ! | 10 | ( | 18 | [ | 26 | . |
3 | @ | 11 | ) | 19 | { | 27 | > |
4 | # | 12 | - | 20 | } | 28 | / |
5 | $ | 13 | _ | 21 | ] | 29 | ? |
6 | % | 14 | = | 22 | ; | - | - |
7 | ^ | 15 | + | 23 | : | - | - |
8 | & | 16 | \ | 24 | , | - | - |