设置密码安全策略
GaussDB 100设置了完善的密码安全策略,保证数据安全。安全策略主要分为密码复杂度、密码重用、密码有效期、密码修改和密码验证五个部分。
密码复杂度
创建数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂度的要求,否则会提示用户重新输入密码。帐户密码的复杂度要求如下:
- 密码长度必须大于等于8个字符,小于等于64个字符。
- 若密码不以单引号括起来,则密码首字符必须是字母、#号或下划线。
- 密码不能与用户名或者用户名的倒序相同(校验时,不区分大小写)。
- 密码只能包含以下4种类型,并且至少选取其中3种类型的组合。
- 数字。
- 小写字母。
- 大写字母。
- 空格或特殊字符(GaussDB 100支持的特殊字符列表,请参见下方的“特殊字符”表)。
- 创建密码时,若密码中包含_#$以外的特殊字符或者空格,则密码须用单引号括起来。
- 若创建的密码中包含特殊字符$,通过zsql连接数据库时密码在单引号里面$不需要使用\转义字符转义,密码不在单引号里面$需要使用\转义字符转义,否则会登录失败。
- 若创建的密码中包含特殊字符空格,只能通过交互式登录。
- 使用conn命令登录数据库密码段都认为是密码字符。
- 使用zsql命令登录数据库密码字段使用单引号括起来。密码中不能出现单引号。
编号 |
字符 |
编号 |
字符 |
编号 |
字符 |
编号 |
字符 |
---|---|---|---|---|---|---|---|
1 |
` |
9 |
& |
17 |
\ |
25 |
" |
2 |
~ |
10 |
* |
18 |
| |
26 |
, |
3 |
! |
11 |
( |
19 |
[ |
27 |
< |
4 |
@ |
12 |
) |
20 |
{ |
28 |
. |
5 |
# |
13 |
- |
21 |
} |
29 |
> |
6 |
$ |
14 |
_ |
22 |
] |
30 |
/ |
7 |
% |
15 |
= |
23 |
: |
31 |
? |
8 |
^ |
16 |
+ |
24 |
' |
- |
- |
密码重用
用户修改密码时,只有超过不可重用天数(PASSWORD_REUSE_TIME)或不可重用次数(PASSWORD_REUSE_MAX)的密码才可以使用。
这两个参数值越大越安全,但是在使用过程中会带来不便,其默认值符合安全标准,用户可以根据需要重新设置参数,提高安全等级。
- PASSWORD_REUSE_TIME
指定密码在多少天内不能重复使用。
取值范围:正数,其中整数部分表示天数,小数部分可以换算成时、分、秒。
如果参数变小,则后续修改密码按新的参数进行检查。
如果参数变大(比如由a变大为b),因为b天之前的历史密码可能已经删除,所以b天之前的密码仍有可能被重用。则后续修改密码按新的参数进行检查。时间以绝对时间为准,历史密码记录的都是当时的时间,不识别时间的修改。
- PASSWORD_REUSE_MAX
在重设密码时,指定当前密码至少需要间隔多少次,才能被重复使用。如果参数变小,则后续修改密码按新的参数进行检查。如果参数变大(比如由a变大为b),因为b次之前的历史密码可能已经删除,所以b次之前的密码仍有可能被重用。则后续修改密码按新的参数进行检查。
PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX这两个参数必须互相关联设置。PASSWORD_REUSE_TIME指定了密码不能重用前的天数,而PASSWORD_REUSE_MAX则指定了当前密码至少需要间隔多少次,才能被重复使用。
设置原则:
- PASSWORD_REUSE_MAX、PASSWORD_REUSE_TIME都为UNLIMITED,密码可以随意重用,没有任何限制。
- PASSWORD_REUSE_MAX、PASSWORD_REUSE_TIME均指定值时,必须满足这两者的条件时才可以重用密码。
- 当PASSWORD_REUSE_MAX、PASSWORD_REUSE_TIME两个有其中一个不为UNLIMITED,则密码永远不能重用。取值范围:正整数。
命令示例如下:
--查看已配置的PASSWORD_REUSE_TIME SELECT * FROM ADM_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_REUSE_TIME';
--更改PASSWORD_REUSE_TIME参数为60。 ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME 60;
--查看已配置的PASSWORD_REUSE_MAX SELECT * FROM ADM_PROFILES WHERE RESOURCE_NAME='PASSWORD_REUSE_MAX';
--更改PASSWORD_REUSE_MAX参数为3。 ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX 3;
密码有效期
示例命令如下:
--查看PASSWORD_LIFE_TIME参数 SELECT * FROM ADM_PROFILES WHERE RESOURCE_NAME ='PASSWORD_LIFE_TIME';
--更改PASSWORD_LIFE_TIME参数为90。 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90;
- PASSWORD_LIFE_TIME
指定同一密码所允许使用的天数。
默认值:180。
密码修改
在创建数据库时,会新建一个和初始DBA用户重名的操作系统用户,为了保证帐户安全,请定期修改操作系统用户的密码。建议数据库系统管理员和普通用户都要定期修改自己的帐户密码,避免帐户密码被非法窃取。数据库系统管理员可以修改自己的或者其他帐户的密码。通过修改其他帐户的密码,解决用户密码遗失所造成无法登录的问题。
- 系统管理员之间不允许互相修改对方密码。
- 系统管理员可以修改普通用户密码且不需要用户原密码。
- 系统管理员修改自己密码但需要管理员原密码。
以修改用户Tom密码为例,示例命令如下:
ALTER USER Tom IDENTIFIED BY '1234@abc' REPLACE '5678@def';
1234@abc、5678@def分别代表用户Tom的新密码和原始密码,这些密码要符合密码规则,否则会执行失败。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论