暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss---设置密码安全策略

8190

操作步骤
用户密码存储在系统表pg_authid中,为防止用户密码泄露,openGauss对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。

  • 当参数password_encryption_type设置为0时,表示采用md5方式对密码加密。md5为不安全的加密算法,不建议使用。
  • 当参数password_encryption_type设置为1时,表示采用sha256和md5方式对密码加密。其中包含md5为不安全的加密算法,不建议使用。
  • 当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密,为默认配置。
  1. 以操作系统用户omm登录数据库主节点。
  2. 使用如下命令连接数据库。
gsql -d postgres -p 8000

postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

查看已配置的加密算法。

postgres=# SHOW password_encryption_type;
 password_encryption_type
--------------------------
 2
(1 row)

如果显示结果为0或1,执行“\q”命令退出数据库。
4.执行如下命令将其设置为安全的加密算法。

gs_guc reload -N all -I all -c "password_encryption_type=2"

须知:
为防止用户密码泄露,在执行CREATE USER/ROLE命令创建数据库用户时,不能指定UNENCRYPTED属性,即新创建的用户的密码只能是加密存储的。

5.配置密码安全参数。

  • 密码复杂度
    初始化数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂度(password_policy)的要求,否则会提示用户重新输入密码。

  • 参数password_policy设置为1时表示采用密码复杂度校验,默认值。

  • 参数password_policy设置为0时表示不采用任何密码复杂度校验,设置为0会存在安全风险,不建议设置为0,即使需要设置也要将所有openGauss节点中的password_policy都设置为0才能生效。

配置password_policy参数。
a.使用如下命令连接数据库。

 gsql -d postgres -p 8000

b. 查看已配置的参数。

 postgres=# SHOW password_policy;
  password_policy
 ---------------------
  1
 (1 row)

如果显示结果不为1,执行“\q”命令退出数据库。
c. 执行如下命令设置成默认值1

 gs_guc reload -N all -I all -c "password_policy=1"

帐户密码的复杂度要求如下:

  • 包含大写字母(A-Z)的最少个数(password_min_uppercase)
  • 包含小写字母(a-z)的最少个数(password_min_lowercase)
  • 包含数字(0-9)的最少个数(password_min_digital)
  • 包含特殊字符的最少个数(password_min_special)(特殊字符的列表请参见表1)
  • 密码的最小长度(password_min_length)
  • 密码的最大长度(password_max_length)
  • 至少包含上述四类字符中的三类。
  • 不能和用户名、用户名倒写相同,本要求为非大小写敏感。
  • 不能和当前密码、当前密码的倒写相同。

密码重用
用户修改密码时,只有超过不可重用天数(password_reuse_time)或不可重用次数(password_reuse_max)的密码才可以使用。参数配置说明如表2所示。

说明:
不可重用天数默认值为60天,不可重用次数默认值是0。这两个参数值越大越安全,但是在使用过程中会带来不便,其默认值符合安全标准,用户可以根据需要重新设置参数,提高安全等级。

配置password_reuse_time参数。
a. 使用如下命令连接数据库。

 gsql -d postgres -p 8000

b.查看已配置的参数。

 postgres=# SHOW password_reuse_time;
  password_reuse_time
 ---------------------
  60
 (1 row)

如果显示结果不为60,执行“\q”命令退出数据库。
c. 执行如下命令设置成默认值60。

说明:
不建议设置为0,即使需要设置也要将所有openGauss节点中的password_reuse_time都设置为0才能生效。

 gs_guc reload -N all -I all -c "password_reuse_time=60"

配置password_reuse_max参数。
a.使用如下命令连接数据库。

 gsql -d postgres -p 8000

b. 查看已配置的参数。

 postgres=# SHOW password_reuse_max;
  password_reuse_max
 --------------------
  0
 (1 row)

如果显示结果不为0,执行“\q”命令退出数据库。
c.执行如下命令设置成默认值0。

 gs_guc reload -N all -I all -c "password_reuse_max = 0"

  • 密码有效期限

数据库用户的密码都有密码有效期(password_effect_time),当达到密码到期提醒天数(password_notify_time)时,系统会在用户登录数据库时提示用户修改密码。

说明:
考虑到数据库使用特殊性及业务连续性,密码过期后用户还可以登录数据库,但是每次登录都会提示修改密码,直至修改为止。

配置password_effect_time参数。

a.使用如下命令连接数据库。

 gsql -d postgres -p 8000

b.查看已配置的参数。

 postgres=# SHOW password_effect_time;
  password_effect_time
 ----------------------
  90
 (1 row)

如果显示结果不为90,执行“\q”命令退出数据库。
c.执行如下命令设置成默认值90(不建议设置为0)。

 gs_guc reload -N all -I all -c "password_effect_time = 90"

配置password_notify_time参数。
a. 使用如下命令连接数据库。

 gsql -d postgres -p 8000

b. 查看已配置的参数。

 postgres=# SHOW password_notify_time;
  password_notify_time
 ----------------------
  7
 (1 row)

c. 如果显示结果不为7,执行如下命令设置成默认值7(不建议设置为0)。

 gs_guc reload -N all -I all -c "password_notify_time = 7"

  • 密码修改

在安装数据库时,会新建一个和初始化用户重名的操作系统用户,为了保证帐户安全,请定期修改操作系统用户的密码。
以修改用户user1密码为例,命令格式如下:

   passwd user1

根据提示信息完成修改密码操作。

建议系统管理员和普通用户都要定期修改自己的帐户密码,避免帐户密码被非法窃取。
以修改用户user1密码为例,以系统管理员用户连接数据库并执行如下命令:

   postgres=# ALTER USER user1 IDENTIFIED BY "1234@abc" REPLACE "5678@def";
   ALTER ROLE

说明:
1234@abc、5678@def分别代表用户user1的新密码和原始密码,这些密码要符合规则,否则会执行失败。

管理员可以修改自己的或者其他帐户的密码。通过修改其他帐户的密码,解决用户密码遗失所造成无法登录的问题。
以修改用户joe帐户密码为例,命令格式如下:

   postgres=# ALTER USER joe IDENTIFIED BY "abc@1234";
   ALTER ROLE

说明:-系统管理员之间不允许互相修改对方密码。
-系统管理员可以修改普通用户密码且不需要用户原密码。
-系统管理员修改自己密码但需要管理员原密码。

  • 密码验证

设置当前会话的用户和角色时,需要验证密码。如果输入密码与用户的存储密码不一致,则会报错。

以设置用户joe为例,命令格式如下:

   postgres=# SET ROLE joe PASSWORD "abc@1234";
   ERROR:  Invalid username/password,set role denied.

表1.jpg表2.jpg
官方文档地址:https://opengauss.org/zh/docs/1.0.1/docs/Developerguide/%E8%AE%BE%E7%BD%AE%E5%AF%86%E7%A0%81%E5%AE%89%E5%85%A8%E7%AD%96%E7%95%A5.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论