当前位置: 首页 > news >正文

openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述

文章目录

    • openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述
      • 116.1 背景信息
      • 116.2 操作步骤

openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述

116.1 背景信息

数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。

关于审计功能,用户需要了解以下几点内容:

  • 审计总开关audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。
  • 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。
  • 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。

目前,openGauss支持以下审计项如表1所示。

表 1 配置审计项

配置项描述
用户登录、注销审计参数:audit_login_logout默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。
数据库启动、停止、恢复和切换审计参数:audit_database_process默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。
用户锁定和解锁审计参数:audit_user_locked默认值为1,表示开启审计用户锁定和解锁功能。
用户访问越权审计参数:audit_user_violation默认值为0,表示关闭用户越权操作审计功能。
授权和回收权限审计参数:audit_grant_revoke默认值为1,表示开启审计用户权限授予和回收功能。
对用户操作进行全量审计参数:full_audit_users默认值为空字符串,表示采用默认配置,未配置全量审计用户。
不需要审计的客户端名称及IP地址参数:no_audit_client默认值为空字符串,表示采用默认配置,未将客户端及IP加入审计黑名单。
数据库对象的CREATE,ALTER,DROP操作审计参数:audit_system_object默认值为67121159,表示只对DATABASE、SCHEMA、USER、DATA SOURCE这四类数据库对象的CREATE、ALTER、DROP操作进行审计。
具体表的INSERT、UPDATE和DELETE操作审计参数:audit_dml_state默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。
SELECT操作审计参数:audit_dml_state_select默认值为0,表示关闭SELECT操作审计功能。
COPY审计参数:audit_copy_exec默认值为1,表示开启copy操作审计功能。
存储过程和自定义函数的执行审计参数:audit_function_exec默认值为0,表示不记录存储过程和自定义函数的执行审计日志。
执行白名单内的系统函数审计参数:audit_system_function_exec默认值为0,表示不记录执行系统函数的审计日志。
SET审计参数:audit_set_parameter默认值为0,表示关闭SET审计功能。
事务ID记录参数:audit_xid_info默认值为0,表示关闭审计日志记录事务ID功能。

安全相关参数及说明请参见表2

表 2 安全相关参数及说明

参数名说明
ssl指定是否启用SSL连接。
require_ssl指定服务器端是否强制要求SSL连接。
ssl_ciphers指定SSL支持的加密算法列表。
ssl_cert_file指定包含SSL服务器证书的文件的名称。
ssl_key_file指定包含SSL私钥的文件名称。
ssl_ca_file指定包含CA信息的文件的名称。
ssl_crl_file指定包含CRL信息的文件的名称。
password_policy指定是否进行密码复杂度检查。
password_reuse_time指定是否对新密码进行可重用天数检查。
password_reuse_max指定是否对新密码进行可重用次数检查。
password_lock_time指定帐户被锁定后自动解锁的时间。
failed_login_attempts如果输入密码错误的次数达到此参数值时,当前帐户被锁定。
password_encryption_type指定采用何种加密方式对用户密码进行加密存储。
password_min_uppercase密码中至少需要包含大写字母的个数。
password_min_lowercase密码中至少需要包含小写字母的个数。
password_min_digital密码中至少需要包含数字的个数。
password_min_special密码中至少需要包含特殊字符的个数。
password_min_length密码的最小长度。说明:在设置此参数时,请将其设置成不大于password_max_length,否则进行涉及密码的操作会一直出现密码长度错误的提示
password_max_length密码的最大长度。说明:在设置此参数时,请将其设置成不小于password_min_length,否则进行涉及密码的操作会一直出现密码长度错误的提示。
password_effect_time密码的有效期限。
password_notify_time密码到期提醒的天数。
audit_enabled控制审计进程的开启和关闭。
audit_directory审计文件的存储目录。
audit_data_format审计日志文件的格式,当前仅支持二进制格式(binary)。
audit_rotation_interval指定创建一个新审计日志文件的时间间隔。当现在的时间减去上次创建一个审计日志的时间超过了此参数值时,服务器将生成一个新的审计日志文件。
audit_rotation_size指定审计日志文件的最大容量。当审计日志消息的总量超过此参数值时,服务器将生成一个新的审计日志文件。
audit_resource_policy控制审计日志的保存策略,以空间还是时间限制为优先策略,on表示以空间为优先策略。
audit_file_remain_time表示需记录审计日志的最短时间要求,该参数在audit_resource_policy为off时生效。
audit_space_limit审计文件占用磁盘空间的最大值。
audit_file_remain_threshold审计目录下审计文件的最大数量。
audit_login_logout指定是否审计数据库用户的登录(包括登录成功和登录失败)、注销。
audit_database_process指定是否审计数据库启动、停止、切换和恢复的操作。
audit_user_locked指定是否审计数据库用户的锁定和解锁。
audit_user_violation指定是否审计数据库用户的越权访问操作。
audit_grant_revoke指定是否审计数据库用户权限授予和回收的操作。
full_audit_users指定全量审计用户列表,对列表中的用户执行的所有可被审计的操作记录审计日志。
no_audit_client指定不需要审计的客户端名称及IP地址列表。
audit_system_object指定是否审计数据库对象的CREATE、DROP、ALTER操作。
audit_dml_state指定是否审计具体表的INSERT、UPDATE、DELETE操作。
audit_dml_state_select指定是否审计SELECT操作。
audit_copy_exec指定是否审计COPY操作。
audit_function_exec指定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。
audit_system_function_exec指定是否开启对执行白名单内的系统函数记录审计日志。
audit_set_parameter指定是否审计SET操作。
enableSeparationOfDuty指定是否开启三权分立。
session_timeout
auth_iteration_count认证加密信息生成过程中使用的迭代次数。

116.2 操作步骤

  1. 以操作系统用户omm登录数据库主节点。

  2. 连接数据库。

    数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

    执行如下命令连接数据库。

    gsql -d postgres -p 8000
    

    其中postgres为需要连接的数据库名称,8000为数据库主节点的端口号。请根据实际情况替换。另外,也可以使用如下任一命令连接数据库。

    gsql postgres://omm:Gauss_234@127.0.0.1:8000/postgres -r
    gsql -d "host=127.0.0.1 port=8000 dbname=postgres user=omm password=Gauss_234"
    

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

    gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.openGauss=# 
    

    omm用户是管理员用户,因此系统显示“DBNAME=#”。若使用普通用户身份登录和连接数据库,系统显示“DBNAME=>”。

    “Non-SSL connection”表示未使用SSL方式连接数据库。如果需要高安全性时,请使用SSL连接。

    img 说明: gsql是本产品提供的命令行方式的数据库连接工具。更多的数据库连接办法可参考使用gsql访问openGauss

  3. 检查审计总开关状态。

    1. 用show命令显示审计总开关audit_enabled的值。

      openGauss=# SHOW audit_enabled;
      

      如果显示为off,执行‘\q’命令退出数据库,继续执行后续步骤。如果显示为on,则无需执行后续步骤。

    2. 执行如下命令开启审计功能,参数设置立即生效。

      gs_guc set -N all -I all -c "audit_enabled=on"
      
  4. 配置具体的审计项。

    img 说明:

    • 只有开启审计功能,用户的操作才会被记录到审计文件中。
    • 各审计项的默认参数都符合安全标准,用户可以根据需要开启其他审计功能,但会对性能有一定影响。

    以开启对数据库所有对象的增删改操作的审计开关为例,其他配置项的修改方法与此相同,修改配置项的方法如下所示:

    gs_guc reload -N all -I all -c "audit_system_object=12295"
    

    其中audit_system_object代表审计项开关,12295为该审计开关的值。

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

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

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

图片

相关文章:

openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述

文章目录 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述116.1 背景信息116.2 操作步骤 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述 116.1 背景信息 数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作…...

python编程复习系列——week2(Input Output (2))

文章目录 一、多行代码语句二、Escape序列三、字符串格式四、数值运算课后作业 一、多行代码语句 🥞使用反斜杠\来表示在下一行中继续使用一条语句。 subject_code "CSCI111" subject_mark 80 subject_grade "D" result "Subject re…...

为什么HTTP用得很好的,开始普及HTTPS呢?

显而易见,现在的HTTP早已不安全,当我们在浏览各个网站时会发现HTTP前面都会显示不安全,因为HTTP是明文传输,一旦电脑被植入了木马,木马程序就会主动周期性发消息给Internet的控制终端,这样NAT小洞会一直敞开…...

C++day6作业

1.思维导图 2.编程题: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在&am…...

【 毕设项目源码推荐 javaweb 项目】 基于 springboot+vue 的图书个性化推荐系统的设计与实现(springboot003)

简介 :::warning 【 毕设项目源码推荐 javaweb 项目】 基于 springbootvue 的图书个性化推荐系统的设计与实现适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负…...

FFmpeg编译hevc版本,支持mac、linux系统

相关前置库 openssl 仓库:https://github.com/openssl/openssl.git编译方式参考INSTALL.md中的步骤 # Unix / Linux / macOS$ ./config$ make && sudo make installlame库 如果需要处理mp3相关,依赖lame库, 仓库:https…...

AI系统ChatGPT程序源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

Unity 3D 调整cube的颜色

1.选中Assets后,右键->Create->Material 2.调整Material的颜色,然后将Material拖到对应的cube上...

数字通信和fpga概述——杜勇版本学习笔记

1数字通信处理流程 脉冲调制是每个数字通信系统中间必不可少的环节,通常是使用升余弦滚降滤波器来实现。 超外差接收机原理是利用本地产生的振荡波与输入信号混频,将输入信号频率变换为某个预先确定的频率的方法。超外差原理最早是由E.H.阿姆斯特朗于1…...

17.复制字符串 ,包括\0

#include<stdio.h> #include <cstring>int main(){int len1,len2;char s1[44];char s2[33];scanf("%s",s1);scanf("%s",s2);len1strlen(s1)1;printf("先s1的字符长度为&#xff1a;%d\n",len1) ;strcpy(s1,s2) ;printf("复制字…...

C# List<T>.IndexOf()方法的使用

C#中的List<T>.IndexOf()方法用于查找指定元素在列表中的索引位置。它返回第一个匹配项的索引&#xff0c;如果未找到匹配项&#xff0c;则返回-1。 语法&#xff1a;有三种参数可选 int List<T>.IndexOf(T item); int List<T>.IndexOf(T item, int star…...

深入理解JVM虚拟机第十八篇:JVM种局部变量表结构的认识

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚虚拟机栈存储结构和运行原理 文章目…...

zabbix监控安装-linux

zabbix6.4中文文档1. 简介 (zabbix.com) Zabbix 是一个企业级的开源分布式监控解决方案。 1.zabbix结构体系 Server&#xff1a; server 是存储所有配置、统计和操作数据的中央存储库。 Proxy&#xff1a; zabbix proxy可以代替 Zabbix server 收集性能和可用性数据。p…...

7+差异分析+WGCNA+PPI网络,学会了不吃亏

今天给同学们分享一篇生信文章“Integrated PPI- and WGCNA-Retrieval of Hub Gene Signatures Shared Between Barretts Esophagus and Esophageal Adenocarcinoma”&#xff0c;这篇文章发表在Front Pharmacol期刊上&#xff0c;影响因子为5.6。 结果解读&#xff1a; 选定研…...

接口自动化测试

下面我们来看看&#xff0c;针对在本章优化重构后的接口测试框架来说&#xff0c;有哪些优点呢。 我们首先来看下目录&#xff0c; 1.Case文件夹用来存放我们的测试用例相关的&#xff0c; 2.Data用来存储我们的测试数据&#xff0c;Excel管理测试用例&#xff0c;yaml文件管理…...

SPASS-描述性分析

将身高移入变量 结果展示&#xff1a; 表中分析变量“身高”的个案数、所有个案中的极大值、极小值、均值、标准差及偏度和峰度...

kafka-go操作kafka

package mainimport ("context""fmt""os""os/signal""syscall""time""github.com/segmentio/kafka-go" )var (topic "user_click"reader *kafka.Reader )// 生产消息 func writeKafka(ctx …...

如何判断被DDoS攻击

当网络和设备正常的情况下&#xff0c;服务器突然出现连接断开、访问卡顿、用户掉线等情况;服务器CPU或内存占用率出现明显增长;网络出入流量出现明显增长;网站或应用程序突然出现大量的未知访问;登录服务器失败或者登录过慢等等。以上是最为常见的服务器被 DDoS攻击后出现的几…...

web —— html

Web —— css基础 1. HTML2. 基本HTML结构3. HTML常用标签3.1 文本相关标签3.2 HTML图像标签3.3 HTML超链接标签3.4 HTML表&#xff0c;单3.4.1 HTML表格3.4.2 HTML表单&#xff0c;输入框&#xff08;多选框&#xff0c;单选框&#xff09;下拉框 3.5 HTML分区标签3.5.1 div标…...

【C/PTA】数组练习(编程)

本文结合PTA专项练习带领读者掌握数组&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 文章目录 7-1 计算最大值出现的次数7-2 求一批整数中出现最多的个位数字7-3 装箱问题7-4 数组-值钱的微信号7-5 数组-吹泡泡7-6 数组-数学鬼才 7…...

如何构建专业级设计系统:Outfit字体9字重开源解决方案技术架构指南

如何构建专业级设计系统&#xff1a;Outfit字体9字重开源解决方案技术架构指南 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专为品牌自动化设计的开源几何无衬线字体&#xf…...

什么是mvcc,面试的时候怎么说

文章目录第一部分&#xff1a;底层实现的三大支柱1. 隐藏字段&#xff08;数据在哪&#xff09;2. Undo Log 版本链&#xff08;历史怎么找&#xff09;3. Read View&#xff08;看哪一条&#xff09;第二部分&#xff1a;可见性判断逻辑&#xff08;核心算法&#xff09;第三部…...

机器学习必备微积分核心知识与学习路径

1. 为什么机器学习从业者需要微积分教材当我在2015年第一次尝试理解反向传播算法时&#xff0c;那个不断出现的∇符号让我意识到&#xff1a;没有扎实的微积分基础&#xff0c;机器学习就像在沙滩上盖房子。市面上大多数ML教程都会说"这里求个导"&#xff0c;却很少解…...

游戏开发AI行为调试与平衡调整

游戏开发中的AI行为调试与平衡调整是确保游戏体验流畅且富有挑战性的关键环节。无论是开放世界中的NPC互动&#xff0c;还是策略游戏中的敌人决策&#xff0c;AI的行为逻辑直接影响玩家的沉浸感与游戏乐趣。随着游戏复杂度的提升&#xff0c;开发者需要更精细地调试AI行为&…...

WASM模块无法热更新?Docker镜像体积超200MB?——Docker WASM高频故障TOP7及根因级修复指南

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Docker WASM边缘计算部署全景图 为什么 WASM 正在重塑边缘容器范式 WebAssembly&#xff08;WASM&#xff09;以其跨平台、内存安全、启动毫秒级和极小运行时开销的特性&#xff0c;成为边缘计算场景中…...

如何快速掌握CREST分子构象搜索:新手完全指南与实战技巧

如何快速掌握CREST分子构象搜索&#xff1a;新手完全指南与实战技巧 【免费下载链接】crest CREST - A program for the automated exploration of low-energy molecular chemical space. 项目地址: https://gitcode.com/gh_mirrors/crest/crest CREST&#xff08;Confo…...

MCP 2026动态权限分配:为什么你的微服务网关总报“403 Context Mismatch”?这4类时间戳/地域/设备指纹校验陷阱90%团队踩过

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;MCP 2026动态权限分配架构演进与核心设计哲学 MCP&#xff08;Multi-Context Permission&#xff09;2026 是面向云原生微服务环境的下一代权限治理框架&#xff0c;其核心突破在于将静态 RBAC 模型升级…...

Go 语言从入门到进阶 | 第 8 章:并发编程——Goroutine 与 Channel

系列:Go 语言从入门到进阶 作者:耿雨飞 适用版本:go v1.26.2 前置条件 在开始本章学习之前,请确保: 已完成前七章的学习,掌握函数、接口和泛型基础 理解函数作为一等公民的概念(闭包、函数类型) 已获取 Go 1.26.2 源码树(go-go1.26.2 目录) 导读 并发是 Go 语言最核…...

从‘能用’到‘好用’:手把手教你为自研V2X协议栈设计一个高效的威胁仲裁(Threat Arbitration)模块

从‘能用’到‘好用’&#xff1a;V2X协议栈威胁仲裁模块的实战设计指南 当一辆自动驾驶汽车驶入复杂的城市交叉路口时&#xff0c;它的传感器可能同时接收到前向碰撞预警、盲区行人警示、信号灯倒计时提醒等十余种安全信息。这时&#xff0c;系统面临的挑战不是数据的匮乏&…...

终极指南:3步解决B站视频格式限制,轻松实现跨平台播放

终极指南&#xff1a;3步解决B站视频格式限制&#xff0c;轻松实现跨平台播放 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的…...