首页 > 数据库 > > 设置安全策略-设置密码安全策略
用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB 200对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
SHOW password_encryption_type;
password_encryption_type
--------------------------
1
(1 row)
如果显示结果为0,执行“\q”命令退出数据库。
gs_guc reload -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_encryption_type=1"注意:
为防止用户密码泄露,在执行CREATE USER/ROLE命令创建数据库用户时,不能指定UNENCRYPTED属性,即新创建的用户的密码只能是加密存储的。
初始化数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂度(password_policy)的要求,否则会提示用户重新输入密码。
配置password_policy参数。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
SHOW password_policy;
password_policy
---------------------
1
(1 row)
如果显示结果不为1,执行“\q”命令退出数据库。
gs_guc reload -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "password_policy=1"帐户密码的复杂度要求如下:
用户修改密码时,只有超过不可重用天数(password_reuse_time)或不可重用次数(password_reuse_max)的密码才可以使用。参数配置说明如表2所示。
说明:不可重用天数默认值为60天,不可重用次数默认值是0。这两个参数值越大越安全,但是在使用过程中会带来不便,其默认值符合安全标准,用户可以根据需要重新设置参数,提高安全等级。
配置password_reuse_time参数。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
SHOW password_reuse_time;
password_reuse_time
---------------------
60
(1 row)
如果显示结果不为60,执行“\q”命令退出数据库。
说明:不建议设置为0,即使需要设置也要将所有集群节点中的password_reuse_time都设置为0才能生效。
gs_guc reload -Z coordinator -Z datanode -N all -I all -c "password_reuse_time=60"配置password_reuse_max参数。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
SHOW password_reuse_max;
password_reuse_max
--------------------
0
(1 row)
如果显示结果不为0,执行“\q”命令退出数据库。
gs_guc reload -Z coordinator -Z datanode -N all -I all -c "password_reuse_max = 0"密码有效期限
数据库用户的密码都有密码有效期(password_effect_time),当达到密码到期提醒天数(password_notify_time)时,系统会在用户登录数据库时提示用户修改密码。
说明:考虑到数据库使用特殊性及业务连续性,密码过期后用户还可以登录数据库,但是每次登录都会提示修改密码,直至修改为止。
配置password_effect_time参数。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
SHOW password_effect_time;
password_effect_time
----------------------
90
(1 row)
如果显示结果不为90,执行“\q”命令退出数据库。
gs_guc reload -Z coordinator -Z datanode -N all -I all -c "password_effect_time = 90"配置password_notify_time参数。
gsql -d postgres -p 25308postgres为需要连接的数据库名称,25308为CN的端口号。
连接成功后,系统显示类似如下信息:
gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#SHOW password_notify_time;
password_notify_time
----------------------
7
(1 row)
gs_guc reload -Z coordinator -Z datanode -N all -I all -c "password_notify_time = 7"密码修改
passwd user1根据提示信息完成修改密码操作。
以修改用户user1密码为例,以系统管理员用户连接数据库并执行如下命令:
ALTER USER user1 IDENTIFIED BY "1234@abc" REPLACE "5678@def";
ALTER ROLE
说明:1234@abc、5678@def分别代表用户user1的新密码和原始密码,这些密码要符合规则,否则会执行失败。
以修改用户joe帐户密码为例,命令格式如下:
ALTER USER joe IDENTIFIED BY "abc@1234";
ALTER ROLE
说明:设置当前会话的用户和角色时,需要验证密码。如果输入密码与用户的存储密码不一致,则会报错。
以设置用户joe为例,命令格式如下:
SET ROLE joe PASSWORD "abc@1234";
ERROR: Invalid username/password,set role denied.
编号 | 字符 | 编号 | 字符 | 编号 | 字符 | 编号 | 字符 |
|---|---|---|---|---|---|---|---|
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 | , | - | - |
参数 | 取值范围 | 配置说明 |
|---|---|---|
不可重用天数(password_reuse_time) | 正数或0,其中整数部分表示天数,小数部分可以换算成时,分,秒。 默认值为60。 |
|
不可重用次数(password_reuse_max) | 正整数或0。 默认值为0,表示不检查重用次数。 |
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3133729/ ,如需转载,请注明出处,否则将追究法律责任。