openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略

文章目录

    • openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略
      • 115.1 操作步骤

openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略

115.1 操作步骤

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

  • 当参数password_encryption_type设置为0时,表示采用md5方式对密码加密。MD5加密算法安全性低,存在安全风险,不建议使用。
  • 当参数password_encryption_type设置为1时,表示采用sha256和md5方式对密码加密。MD5加密算法安全性低,存在安全风险,不建议使用。
  • 当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密,为默认配置。
  • 当参数password_encryption_type设置为3时,表示采用sm3方式对密码加密。
  1. 以操作系统用户omm登录数据库主节点。

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

    gsql -d postgres -p 8000
    

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

    连接成功后,系统显示类似如下信息:

    gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.openGauss=# 
    
  3. 查看已配置的加密算法。

    openGauss=# 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"
    

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

  5. 配置密码安全参数。

    • 密码复杂度

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

      • 参数password_policy设置为1时表示采用密码复杂度校验,默认值。
      • 参数password_policy设置为0时表示不采用密码复杂度校验,但需满足密码不能为空并且只包含有效字符,有效字符范围为大写字母(A-Z)、小写字母(a-z)、数字(0-9)及特殊字符详见表1。设置为0会存在安全风险,不建议设置为0,即使需要设置也要将所有openGauss节点中的password_policy都设置为0才能生效。

      配置password_policy参数。

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

        gsql -d postgres -p 8000
        

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

        连接成功后,系统显示类似如下信息:

        gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
        Non-SSL connection (SSL connection is recommended when requiring high-security)
        Type "help" for help.openGauss=# 
        
      2. 查看已配置的参数。

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

        如果显示结果不为1,执行“\q”命令退出数据库。

      3. 执行如下命令设置成默认值1。

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

      img 说明:

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

      • 包含大写字母(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)
      • 至少包含上述四类字符中的三类。
      • 不能和用户名、用户名倒写相同,本要求为非大小写敏感。
      • 不能和当前密码、当前密码的倒写相同。
      • 不能是弱口令。
      • 弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别,用户需自己添加定制化的弱口令。
      • 弱口令字典中的口令存放在gs_global_config系统表中,当创建用户、修改用户需要设置密码时,系统将会把用户设置口令和弱口令字典中存放的口令进行对比,如果符合,则会提示用户该口令为弱口令,设置密码失败。
      • 弱口令字典默认为空,用户通过以下语法可以对弱口令字典进行增加和删除,示例如下:
      openGauss=# CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('password1'), ('password2');
      openGauss=# DROP WEAK PASSWORD DICTIONARY;
      
    • 密码重用

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

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

      配置password_reuse_time参数。

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

        gsql -d postgres -p 8000
        

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

        连接成功后,系统显示类似如下信息:

        gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
        Non-SSL connection (SSL connection is recommended when requiring high-security)
        Type "help" for help.openGauss=# 
        
      2. 查看已配置的参数。

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

        如果显示结果不为60,执行“\q”命令退出数据库。

      3. 执行如下命令设置成默认值60。

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

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

      配置password_reuse_max参数。

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

        gsql -d postgres -p 8000
        

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

        连接成功后,系统显示类似如下信息:

        gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
        Non-SSL connection (SSL connection is recommended when requiring high-security)
        Type "help" for help.openGauss=# 
        
      2. 查看已配置的参数。

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

        如果显示结果不为0,执行“\q”命令退出数据库。

      3. 执行如下命令设置成默认值0。

        gs_guc reload -N all -I all -c "password_reuse_max = 0"
        
    • 密码有效期限

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

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

      配置password_effect_time参数。

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

        gsql -d postgres -p 8000
        

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

        连接成功后,系统显示类似如下信息:

        gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
        Non-SSL connection (SSL connection is recommended when requiring high-security)
        Type "help" for help.openGauss=# 
        
      2. 查看已配置的参数。

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

        如果显示结果不为90,执行“\q”命令退出数据库。

      3. 执行如下命令设置成默认值90(不建议设置为0)。

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

      配置password_notify_time参数。

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

        gsql -d postgres -p 8000
        

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

        连接成功后,系统显示类似如下信息:

        gsql ((openGauss x.x.x build 50dc16a6) compiled at 2020-11-29 05:49:21 commit 1071 last mr 1373)
        Non-SSL connection (SSL connection is recommended when requiring high-security)
        Type "help" for help.openGauss=# 
        
      2. 查看已配置的参数。

        openGauss=# SHOW password_notify_time;
        password_notify_time
        ----------------------
        7
        (1 row)
        
      3. 如果显示结果不为7,执行如下命令设置成默认值7(不建议设置为0)。

        gs_guc reload -N all -I all -c "password_notify_time = 7"
        
    • 密码修改

      • 在安装数据库时,会新建一个和初始化用户重名的操作系统用户,为了保证帐户安全,请定期修改操作系统用户的密码。

        以修改用户user1密码为例,命令格式如下:

        passwd user1
        

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

      • 建议系统管理员和普通用户都要定期修改自己的帐户密码,避免帐户密码被非法窃取。

        以修改用户user1密码为例,以系统管理员用户连接数据库并执行如下命令:

        openGauss=# ALTER USER user1 IDENTIFIED BY "$$$$$$$$" REPLACE "XXXXXXXX";
        ALTER ROLE
        

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

      • 管理员可以修改自己的或者其他帐户的密码。通过修改其他帐户的密码,解决用户密码遗失所造成无法登录的问题。

        以修改用户joe帐户密码为例,命令格式如下:

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

        img 说明:

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

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

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

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

    表 1 特殊字符

    编号字符编号字符编号字符编号字符
    1~9*17|25<
    210(18[26.
    3@11)19{27>
    4#12-20}28/
    5$13_21]29
    6%14=22--
    7^15+23--
    8&16\24--

    表 2 不可重用天数和不可重用次数参数说明

    参数取值范围配置说明
    不可重用天数(password_reuse_time)正数或0,其中整数部分表示天数,小数部分可以换算成时,分,秒。默认值为60。如果参数变小,则后续修改密码按新的参数进行检查。如果参数变大(比如由a变大为b),因为b天之前的历史密码可能已经删除,所以b天之前的密码仍有可能被重用。则后续修改密码按新的参数进行检查。说明:时间以绝对时间为准,历史密码记录的都是当时的时间,不识别时间的修改。
    不可重用次数(password_reuse_max)正整数或0。默认值为0,表示不检查重用次数。如果参数变小,则后续修改密码按新的参数进行检查。如果参数变大(比如由a变大为b),因为b次之前的历史密码可能已经删除,所以b次之前的密码仍有可能被重用。则后续修改密码按新的参数进行检查。
  6. 设置用户密码失效。

    具有CREATEROLE权限的用户在创建用户时可以强制用户密码失效,新用户首次登陆数据库后需要修改密码才允许执行其他查询操作,命令格式如下:

    openGauss=# CREATE USER joe PASSWORD "abc@1234" EXPIRED;
    CREATE ROLE
    

    具有CREATEROLE权限的用户可以强制用户密码失效或者强制修改密码且失效,命令格式如下:

    openGauss=# ALTER USER joe PASSWORD EXPIRED;
    ALTER ROLE
    
    openGauss=# ALTER USER joe PASSWORD "abc@2345" EXPIRED;
    ALTER ROLE
    

    img 说明:

    • 密码失效的用户登录数据库后,当执行简单查询或者扩展查询时,会提示用户修改密码。修改密码后可以正常执行语句。
    • 只有初始用户、系统管理员(sysadmin)或拥有创建用户(CREATEROLE)权限的用户才可以设置用户密码失效,其中系统管理员也可以设置自己或其他系统管理员密码失效。不允许设置初始用户密码失效。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/182072.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg mp3截取命令,视频与mp3合成带音频视频命令

从00:00:03.500开始截取往后长度到结尾的mp3音频&#xff08;这个更有用&#xff0c;测试好用&#xff09; ffmpeg -i d:/c.mp3 -ss 00:00:03.500 d:/output.mp3 将两个音频合并成一个音频&#xff08;测试好用&#xff09; ffmpeg -i "concat:d:/c.mp3|d:/output.mp3&…

前端框架Vue学习 ——(四)Axios

文章目录 Axios 介绍Axios 入门Vue项目中使用 Axios Axios 介绍 介绍: Axios 对原生的 Ajax 进行了封装&#xff0c;简化书写&#xff0c;快速开发。&#xff08;异步请求&#xff09; 官网: https://www.axios-http.cn/ 官网介绍&#xff1a;Axios 是一个基于 promise 网络请…

20.5 OpenSSL 套接字RSA加密传输

RSA算法同样可以用于加密传输&#xff0c;但此类加密算法虽然非常安全&#xff0c;但通常不会用于大量的数据传输&#xff0c;这是因为RSA算法加解密过程涉及大量的数学运算&#xff0c;尤其是模幂运算&#xff08;即计算大数的幂模运算&#xff09;&#xff0c;这些运算对于计…

编码器类型说明

目录 光电编码器 磁性编码器 电容式编码器 对比优缺点 编码器在运动控制类产品中比较常见&#xff0c;旋转编码器都是组成运动控制反馈回路的关键元器件&#xff0c;包括工业自动化设备和过程控制、机器人技术、医疗设备、能源、航空航天等。 作为将机械运动转换为电信号的…

❤️ React的安装和使用(实战篇)

React的安装和使用 一、React的安装和使用 reactJs警告提示&#xff1a; This version of tar is no longer supported, and will not receive security updates. Please upgrade asap 翻译&#xff1a;tar2.2.2&#xff1a;此版本的tar不再受支持&#xff0c;将不会收到安全…

新大陆NVH200-AP(U)扫码枪在上位机软件开发中的应用

前言: 由于本次使用的是USB接口的扫码枪 1、先安装Nset软件,使用扫码枪扫描“启动设置条码”,然后扫描“USB CDC串口”条码 2、打开NSet软件,点击“刷新按钮” 就能找到扫码枪设备 3、设置条码后缀 点击“高级设置”,然后点击“数据编辑”,在“后缀”那里设置结束符…

1-3 docker 安装 prometheus

一、环境 1、环境准备 安装Docker 镜像加速 安装 docker 检查版本 安装Docker-compose 二、Docker-compose 安装 Prometheus 1、【方式一】手动创建 docker-compose 和 配置文件 创建prometheus监控的文件夹 创建alertmanager的配置文件 - config.yml 新建grafana的…

windows mysql安装

1、首先去官网下载mysql安装包&#xff0c;官网地址&#xff1a;MySQL :: Download MySQL Community Server 2&#xff1a;把安装包放到你安装mysql的地方&#xff0c;然后进行解压缩&#xff0c;注意&#xff0c;解压后的mysql没有配置文件&#xff0c;我们需要创建配置文件 配…

红黑树——原理刨析

众所周知&#xff0c;红黑树是从AVLTree树中衍变而来的&#xff0c;所以在学红黑树之前还是要好好的理解一下AVLTree树的原理&#xff0c;为理解红黑树减轻理解负担&#xff0c;好了进入正题。 红黑树原理&#xff1a; 由名可知&#xff0c;红黑树——肯定是与颜色有关的一个树…

操作系统——文件在外存中的分配方式(王道视频p61 P62)

1.总体概述&#xff1a; 连续分配 —— 链接分配 —— 索引分配 &#xff08;1&#xff09;对于顺序分配&#xff0c;这种方式 基本不会使用了&#xff0c; 因为 它存在一个 核心的问题就是 没法更新&#xff1b;不过&#xff0c;还是要注意它的 “文件目录”——其中存放了…

强化学习中策略的迭代

一、策略迭代 一旦使用vπ改善了策略π&#xff0c;产生了更好的策略π0&#xff0c;我们就可以计算vπ0并再次对其进行改进&#xff0c;产生更好的π00。因此&#xff0c;我们可以获得一系列单调改善的策略和值函数&#xff1a; 其中E−→表示策略评估&#xff0c;I−→表示策…

企业通配符SSL证书的特点

企业通配符SSL证书是一种数字证书&#xff0c;其可以用于保护多个企业网站&#xff0c;对网站传输信息进行加密服务。这种证书通常适用于拥有多个子域名或二级域名的企事业单位。今天就随SSL盾小编了解企业通配符SSL证书的相关信息。 1. 保护所有域名和子域名&#xff1a;企业通…

linux 启动引导找不到内核修复

问题现象 选中内核按e 看到引导内核信息 挂载ISO映像进入救援模式&#xff0c;查看boot目录 与 引导文件内容不一致 再次重启引导系统&#xff0c;按e 修改内核引导项与boot目录一致&#xff0c; crtl - x 继续执行 登录系统 mount /dev/sdm1 /mnt 挂载vfat 引导目录 纠…

CorelDRAW2024好不好用?怎么下载

cdr是CorelDRAW的简称&#xff0c;一款专注排版和矢量图形编辑的平面设计软件。这款软件的设计界面精微细致、简洁易懂。功能尤其强大&#xff0c;图标设计&#xff0c;印刷排版&#xff0c;服装设计等都可以胜任。还有多种模板使得设计相当的轻松&#xff0c;今天简单介绍一下…

C语言查看各数据类型所占大小

编译器&#xff1a;VC2010 #include<stdio.h> int main() {printf("%d\n",sizeof(char));printf("%d\n",sizeof(short));printf("%d\n",sizeof(int));printf("%d\n",sizeof(long));printf("%d\n",sizeof(long long))…

【Python语言】集合的使用方法总结

目录 1、集合基本知识&#xff1a; 2、定义 2.1 定义集合变量 2.2 定义空集合 3、集合的常用操作 3.1 定义集合 3.2 添加新元素 3.3 移除元素 3.4 从集合中随机取出元素 3.5 清空集合 3.6 取两个集合的差集 3.7 消除两个集合的差集 3.8 两个集合合并 3.9 统计集合…

软件外包开发质量控制方法

在软件外包开发项目中&#xff0c;质量控制是确保交付的软件符合预期质量标准的关键步骤。以下是一些常用的软件外包开发质量控制方法&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 需求明确&#x…

【第28例】IPD体系进阶 | 需求管理:需求实现过程

目录 简介 内容详解 CSDN学院相关推荐 作者简介 简介 继续 IPD 体系中的需求管理相关的专题。 先来看看整个需求管理涉及的过程内容: 需求管理流程主要包含五个阶段: 需求收集; 需求分析; 需求分发/分配;

构建数字孪生的四大挑战

如果不能解决由数字孪生带来的开发难题&#xff0c;那么企业就无法享受这种技术便利。 数字孪生已经成为企业当前面对的一大机遇&#xff0c;其核心在于利用虚拟副本中的分析数据对未来业务事件开展预测。这不仅能够大大降低决策难度&#xff0c;同时也有助于提升决策效果。 然…

“利用义乌购API揭秘跨境贸易商机:一键获取海量优质商品列表!“

义乌购API可以根据关键词取商品列表。通过调用义乌购API的item_search接口&#xff0c;传入关键词参数&#xff0c;可以获取到符合该关键词的商品列表。 以下是使用义乌购API根据关键词取商品列表的步骤&#xff1a; 注册义乌购开发者账号并获取授权码和密钥。在代码中导入义…