【openGauss数据库安全策略配置】--略有小成

news2024/11/14 13:44:55

【openGauss数据库安全策略配置】--略有小成

    • 🔻 一、openGauss数据库安全策略
      • 🔰 1.1 账户安全策略
        • ⛳ 1.1.1 自动锁定和解锁帐户
          • 💧 1.1.1.1 配置failed_login_attempts参数
          • 💧 1.1.1.2 配置password_lock_time参数
        • ⛳ 1.1.2 手动锁定和解锁帐户
        • ⛳ 1.1.3 删除不再使用的帐户
      • 🔰 1.2 账户有效期设置
      • 🔰 1.3 密码安全策略设置
        • ⛳ 1.3.1 配置用户密码加密算法
        • ⛳ 1.3.2 配置用户密码安全参数
          • 💧 1.3.2.1 密码复杂度
          • 💧 1.3.2.2 密码重用
          • 💧 1.3.2.3 密码有效期限
          • 💧 1.3.2.4 密码修改
          • 💧 1.3.2.5 密码验证
          • 💧 1.3.2.6 设置用户密码失效
    • 🔻 二、总结—温故知新

在这里插入图片描述


👈【上一篇】
💖The Begin💖 点点关注,收藏不迷路💖
【下一篇】👉

🔻 一、openGauss数据库安全策略

openGauss为帐户提供了自动锁定和解锁帐户、手动锁定和解锁异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据安全

🔰 1.1 账户安全策略

⛳ 1.1.1 自动锁定和解锁帐户

自动锁定和解锁帐户使用场景:

🌳1、用户输入密码错误次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,openGauss默认值为10。次数设置越小越安全。

🌳2、当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,openGauss默认值为1天。时间设置越长越安全。

🌳3、当failed_login_attempts设置为0时,表示不限制密码错误次数。

🌳4、当password_lock_time设置为0时,表示即使超过密码错误次数限制导致帐户锁定,也会在短时间内自动解锁。

这两个参数的默认值都符合安全标准,可以根据需要重新设置参数,提高安全等级。---建议使用参数默认值。下面介绍有关这两个参数的设置步骤。

💧 1.1.1.1 配置failed_login_attempts参数

failed_login_attempts参数文件地址/opt/software/install/data/dn/postgresql.conf
/opt/software/install/ ----你的openGauss数据库安装路径。

###🍀1、以用户omm登录数据库节点、连接postgres数据库🍀###
[root@klgdj ~]# su - omm

[omm@klgdj ~]$ gsql -d postgres -p 15400

###🍀2、查看已配置的failed_login_attempts参数🍀###
openGauss=# SHOW failed_login_attempts;
 failed_login_attempts 
-----------------------
 10
(1 row)

db_test01=# 

###🍀3、执行“\q”命令退出数据库
openGauss=# \q

###🍀4、修改failed_login_attempts参数值为5🍀###
[omm@klgdj ~]$ gs_guc reload -D /opt/software/install/data/dn -c "failed_login_attempts=5"

###🍀5、检查参数值,限制密码错误次数已修改为5🍀###
openGauss=# SHOW failed_login_attempts;
 failed_login_attempts 
-----------------------
 5
(1 row)

openGauss=# 

或者通过vi 参数文件地址/opt/software/install/data/dn/postgresql.conf,查看。

在这里插入图片描述

💧 1.1.1.2 配置password_lock_time参数

failed_login_attempts参数文件地址/opt/software/install/data/dn/postgresql.conf
/opt/software/install/ ----你的openGauss数据库安装路径。

###🍀1、查看已配置的password_lock_time参数🍀###
openGauss=# SHOW password_lock_time;
 password_lock_time 
--------------------
 1d
(1 row)

openGauss=#

###🍀2、执行“\q”命令退出数据库
openGauss=# \q


###🍀4、修改password_lock_time参数值为2(天)🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_lock_time=2"
The gs_guc run with the following arguments: [gs_guc -N all -I all -c password_lock_time=2 reload ].
NOTICE: password_lock_time and failed_login_attempts must have positive for lock and unlock functions to work as.
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.

Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!


[omm@klgdj ~]$ 


###🍀5、检查参数值,帐户锁定后自动解锁时间已修改为2(天)🍀###
openGauss=# SHOW password_lock_time;
 password_lock_time 
--------------------
 2d
(1 row)

openGauss=# 

或者通过vi 参数文件地址/opt/software/install/data/dn/postgresql.conf,查看。
在这里插入图片描述

⛳ 1.1.2 手动锁定和解锁帐户

手动锁定和解锁帐户使用场景:

🌳1、管理员发现某帐户被盗、非法访问等异常情况,可手动锁定该帐户。

🌳2、当管理员认为帐户恢复正常后,可手动解锁该帐户。

下面手动锁定和解锁用户zyl:

###🍀1、手动锁定用户zyl🍀###
openGauss=# ALTER USER zyl ACCOUNT LOCK;
ALTER ROLE
openGauss=# 

在这里插入图片描述

###🍀2、手动解锁用户zyl🍀###
openGauss=# ALTER USER zyl ACCOUNT UNLOCK;
ALTER ROLE
openGauss=# 

在这里插入图片描述

⛳ 1.1.3 删除不再使用的帐户

删除不再使用的帐户使用场景:

🌳1、当确认帐户不再使用,管理员可以删除帐户。该操作不可恢复

🌳2、当删除的用户正处于活动状态时,此会话状态不会立马断开,用户在会话状态断开后才会被完全删除。。

下面以删除zyl02用户为例:

###🍀1、删除zyl02用户🍀###
db_test01=#  DROP USER zyl02 CASCADE;
DROP ROLE
db_test01=# 

###🍀2、\du 查看数据库用户🍀###
db_test01=# \du

🔰 1.2 账户有效期设置

账户有效期设置使用场景:

🌳1、创建新用户时,需要限制用户的操作期限(有效开始时间和有效结束时间)。

🌳2、不在有效操作期内的用户需要重新设定帐号的有效操作期。

###🍀1、创建zyl03用户并制定用户的有效开始时间和有效结束时间🍀###
openGauss=# CREATE USER zyl03 WITH PASSWORD 'zyl03#2023' VALID BEGIN '2023-06-22 08:00:00' VALID UNTIL '2030-06-22 08:00:00';

###🍀2、用户已不在有效使用期内,需要重新设定帐号的有效期🍀###
openGauss=# ALTER USER zyl03 WITH VALID BEGIN '2023-06-22 08:00:00' VALID UNTIL '2035-06-22 08:00:00';
ALTER ROLE
openGauss=# 

🔰 1.3 密码安全策略设置

⛳ 1.3.1 配置用户密码加密算法

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

🌳 0--表示采用md5方式对密码加密。MD5加密算法安全性低,存在安全风险,不建议使用。
🌳 1--表示采用sha256和md5方式对密码加密。MD5加密算法安全性低,存在安全风险,不建议使用。
🌳 2--表示采用sha256方式对密码加密,为默认配置。
🌳 3--表示采用sm3方式对密码加密。

可通过vi 参数文件地址/opt/software/install/data/dn/postgresql.conf,查看。

在这里插入图片描述

###🍀1、查看已配置的加密算法---当前设置MD5加密🍀###
openGauss=# SHOW password_encryption_type;
 password_encryption_type 
--------------------------
 0
(1 row)

openGauss=#

###🍀2、如果显示结果为0或1,执行“\q”命令退出数据库🍀###
openGauss=# \q

###🍀3、将其设置为安全的加密算法---sha256🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_encryption_type=2"
The gs_guc run with the following arguments: [gs_guc -N all -I all -c password_encryption_type=2 reload ].
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.

Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!

[omm@klgdj ~]$

###🍀4、再次查看加密算法---(2)sha256🍀###
openGauss=#  SHOW password_encryption_type;
 password_encryption_type 
--------------------------
 2
(1 row)

openGauss=# 

⛳ 1.3.2 配置用户密码安全参数

💧 1.3.2.1 密码复杂度

初始化数据库、创建用户、修改用户时需要指定密码。密码必须要符合复杂度(password_policy)的要求。参数文件地址:/opt/software/install/data/dn/postgresql.conf

###🍀1、参数password_policy设置为1时表示采用密码复杂度校验,默认值。
###🍀2、参数password_policy设置为0时表示不采用密码复杂度校验,但需满足密码不能为空并且只包含有效字符,有效字符范围为大写字母(A-Z)、小写字母(a-z)、数字(0-9)及其他特殊字符。

###🍀3、设置为0会存在安全风险,不建议设置为0,即使需要设置也要将所有openGauss节点中的password_policy都设置为0才能生效。

配置password_policy参数:

###🍀1、查看已配置的参数---1(默认值)🍀###
openGauss=# SHOW password_policy;
 password_policy 
-----------------
 1
(1 row)

openGauss=# 
###🍀2、如果显示结果不为1,执行“\q”命令退出数据库🍀###
openGauss=# \q

###🍀3、设置password_policy参数成默认值1🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_policy=1"

💧 1.3.2.2 密码重用

用户修改密码时,只有超过不可重用天数(password_reuse_time)或不可重用次数(password_reuse_max)的密码才可以使用。

🌳 1、openGauss不可重用天数默认值为60天,不可重用次数默认值是0。
🌳 2、可以根据需要重新设置参数,提高安全等级。

###🍀1、password_reuse_time参数设置🍀###

###🍀查看已配置的参数---60天🍀###
openGauss=# SHOW password_reuse_time;
 password_reuse_time 
---------------------
 60
(1 row)

openGauss=# 
###🍀2、如果显示结果不为60,执行“\q”命令退出数据库。🍀###
openGauss=# \q

###🍀将password_reuse_time设置成默认值60🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_reuse_time=60"
###🍀2、password_reuse_max参数设置🍀###

###🍀查看已配置的参数----0次🍀###
openGauss=# SHOW password_reuse_max;
 password_reuse_max 
--------------------
 0
(1 row)

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

###🍀将password_reuse_max设置成默认值0🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_reuse_max = 0"
💧 1.3.2.3 密码有效期限

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

###🍀1、password_effect_time参数设置🍀###

###🍀查看已配置的参数----90天🍀###
openGauss=# SHOW password_effect_time;
 password_effect_time 
----------------------
 90
(1 row)

openGauss=# 

###🍀结果不为90,执行“\q”命令退出数据库🍀###
openGauss=# \q


###🍀设置password_effect_time成默认值90(不建议设置为0)🍀###

[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_effect_time = 90"

###🍀2、password_notify_time参数设置🍀###

###🍀查看已配置的参数----密码到期前7天提醒🍀###
openGauss=# SHOW password_notify_time;
 password_notify_time 
----------------------
 7
(1 row)

openGauss=# 

###🍀如果显示结果不为7,执行如下命令设置成默认值7(不建议设置为0)🍀###
[omm@klgdj ~]$ gs_guc reload -N all -I all -c "password_notify_time = 7"
💧 1.3.2.4 密码修改

1、在安装数据库时,会新建一个和初始化用户(omm)的操作系统用户,为了保证帐户安全,需要定期修改操作系统用户的密码。
命令:passwd omm

2、建议系统管理员和普通用户都要定期修改自己的帐户密码,避免帐户密码被非法窃取。
命令:ALTER USER zyl IDENTIFIED BY "zyl@1234";

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

💧 1.3.2.5 密码验证

设置当前会话的用户和角色时,需要验证密码。

###🍀错误密码情况
openGauss=# SET ROLE zyl PASSWORD "zyl@123456";
ERROR:  Invalid username/password,set role denied.
openGauss=# 

###🍀正确密码情况
openGauss=# SET ROLE zyl PASSWORD "zyl#2023";
SET
openGauss=> 


💧 1.3.2.6 设置用户密码失效

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

###🍀1、创建用户时,指定密码失效
openGauss=# CREATE USER zyl04 PASSWORD "abc@1234" EXPIRED;


###🍀2、强制用户密码失效或者强制修改密码且失效
openGauss=# ALTER USER zyl04 PASSWORD EXPIRED;
ALTER ROLE

openGauss=# ALTER USER zyl04 PASSWORD "abc@12345" EXPIRED;
ALTER ROLE
openGauss=# 

1、密码失效的用户登录数据库后,当执行简单查询或者扩展查询时,会提示用户修改密码。

2、只有初始用户、系统管理员(sysadmin)或拥有创建用户(CREATEROLE)权限的用户才可以设置用户密码失效,其中系统管理员也可以设置自己或其他系统管理员密码失效。

3、不允许设置初始用户(omm)密码失效

🔻 二、总结—温故知新

❓ openGauss数据库---设置帐户安全策略
❓ openGauss数据库---设置帐号有效期
❓ openGauss数据库---设置密码安全策略

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL实战解析底层---count(*)这么慢,该怎么办

目录 前言 count(*)的实现方式 用缓存系统保存计数 在数据库保存计数 不同的count用法 前言 在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数这时候你可能会想,一条select count(*) fromt 语句不就…

Spring Boot 如何使用 @ExceptionHandler 注解处理异常消息

Spring Boot 如何使用 ExceptionHandler 注解处理异常消息 在 Spring Boot 应用程序中,异常处理是非常重要的一部分。当应用程序出现异常时,我们需要能够捕获和处理这些异常,并向用户提供有用的错误消息。在 Spring Boot 中,可以…

规则引擎--规则逻辑形如“1 (2 | 3)“的抽象

目录 规则下逻辑表达和条件的抽象表达逻辑的编码和抽象 规则&规则集合条件操作符规则规则执行表达式遍历进行操作符计算添加具体条件的执行 规则执行完成后得到最后的结果 规则下逻辑表达和条件的抽象 对于任何一个规则,包括多个条件,都可以抽象成如…

抽象确实JavaScript

看完上篇的添加事件,我想肯定有一万个黑马在奔腾 明明是照着添加宾语的公式来的,为什么会有报错? 事件不是说可以随便设置吗?但是会出问题 this又是什么关键词? value是啥? 围绕这三大疑问&#xff0c…

LED显示产业如何突破芯片短板

LED显示产业在突破芯片短板方面可以采取以下措施: 研发先进的芯片技术:LED显示芯片的研发是关键。通过投入更多资源和资金,研究机构和企业可以致力于开发更先进、更高效的LED显示芯片技术。这包括改进光电转换效率、提高亮度和色彩表现力等方…

Python基础合集 练习25 (正则表达式)

[0123456789] 普通字符 [0-9]简洁写法 在正则表达式中所有字符类型都有对应的编码 在匹配大写英文字母时,应该是 “”" [a-zA-Z]或[A-Za-z] “”" 元字符… … (.[0-9]{1,3}){3}进行重复三次操作 ^\d{9}$ 使用^和$匹配开始和结束位置,\d表示匹配数字,{9}表示…

【C++篇】C++的动态分配内存

友情链接:C/C系列系统学习目录 知识点内容正确性以C Primer(中文版第五版)、C Primer Plus(中文版第六版)为标准,同时参考其它各类书籍、优质文章等,总结归纳出个人认为较有逻辑的整体框架&…

处理 Python 3.11 弃用的 PySys_SetPath 和 Py_SetProgramName

在C调用matplotlibcpp.h画图时报错,使用的python版本是3.11.3版本。 解决方案:不重要的话,注释该行代码即可。 Python 3.11 弃用 PySys_SetPath 和 Py_SetProgramName。这 PyConfig API 取代了这些功能和其他功能。此提交使用 PyConfig API …

深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识

分类目录:《深入理解深度学习》总目录 《深入理解深度学习——Transformer》系列文章介绍了Transformer,该模型最初被用于机器翻译任务,其出色表现引起了学术界的极大兴趣,其优异的特征提取与语义抽象能力得到了学者的广泛认可&am…

企业做seo有什么好处?SEO 为您的企业带来的 10 大主要优势?

如果您希望建立长期的品牌知名度、扩大目标受众并赚取更多收入,那么搜索引擎优化至关重要。让我们看看 SEO 为您的企业带来的 10 大好处,以及如何实现它们。 1. 它提高了你的可信度 在搜索引擎结果页面上排名靠前的网站通常被搜索引擎认为是高质量和值得…

【unity细节】—怎么将unity编译时和运行时的功能隔开

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐怎么将unity编译时和运行时的功能隔开的问题⭐ 文章目录 ⭐怎么将unity编译时和…

TCP的十个核心机制

目录 前言一 到 三四. 滑动窗口五. 流量控制六. 拥塞控制七. 延时应答八. 捎带应答九. 面向字节流十. 异常处理总结 前言 TCP协议是传输层的重点协议, 负责将数据从发送端传输到接收端. TCP协议是传输控制协议, 顾名思义也就是对数据的传输进行控制的协议. TCP 协议有很多, 我…

android存储3--初始化.unlock事件的处理

android版本:android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 概述:收到unlock事件后,StorageSessionController、vold、storaged模块进行各自初始化操作。 一、StorageManagerService::onUnlockUser处理unlock事件 设备解锁后…

openlayers瓦片的使用

OpenLayers是一个用于WebGIS客户端的地图开发库,支持多种地图。在使用瓦片时,先将自己需要的瓦片下载,下载好的瓦片会分层,越高的层级瓦片的数量余额多。 使用时可以引入 ol.js 文件,和 ol.css 文件,或者使…

机器学习 | 实验五:LDA

LDA的思想:“投影后类内方差最小,类间方差最大”。即数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。 假设我们有两类数据分别为红色和蓝色,…

关于socket编程中FD_XXX以及select函数的理解

文章目录 01 | 宏接口定义02 | 使用方法03 | 服务端代码示例 学习socket编程的时候看到很多FD开头的宏定义和函数,这里记录一下这些宏定义和函数的含义及处理流程 01 | 宏接口定义 fd_set fd_set 是一种表示文件描述符的集合类型,在socket编程中&#xf…

计算机网络——自顶向下方法(第三章学习记录)

本章学习运输层 运输层位于应用层和网络层之间,是分层的网络体系的重要部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能。从应用程…

CSS3-补充-伪元素

伪元素 作用:在网页中创建非主体内容,开发中常用CSS创建标签,比如装饰性的不重要的小图 区别: 1 元素:HTML 设置的标签 2 伪元素:由 CSS 模拟出的标签效果 …

EMC学习笔记(七)阻抗控制(一)

阻抗控制(一) 1.特征阻抗的物理意义1.1 输入阻抗1.2 特征阻抗1.3 偶模阻抗、奇模阻抗、差分阻抗 2.生产工艺对阻抗控制的影响 1.特征阻抗的物理意义 1.1 输入阻抗 在集总电路中,输入阻抗是经常使用的一个术语 ,它的物理意义是: …

FreeRTOS实时操作系统(六)列表与列表项

系列文章目录 文章目录 系列文章目录简要概念列表列表项迷你列表项 相关API函数初始化列表列表项初始化列表项插入(升序)末尾列表项插入列表项删除 实战实验 简要概念 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列…