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为该审计开关的值。

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

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

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

图片

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

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

相关文章

AWS:EC2实例创建步骤

创立步骤修改 播报 假如你现已准备好运用Amazon Web服务(AWS),那么,至少有两种做法能够用来创立以及运用AWS。一种做法是运用AWS API(应用程序编程接口)调用。主张你在大多数情况下运用第二种做法, 即AWS办理操控台,亚马逊的基于web的界面。 …

服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】

当然,你可以先按照IDEA搭建SSM框架【配置类、新手向】完成基础框架的搭建 步骤 1:设计并实现服务器端的用户数据库 在这个示例中,我们将使用MySQL数据库。首先,你需要安装MySQL并创建一个数据库以存储用户信息。以下是一些基本步…

后端工程化 | SpringBoot 知识点

文章目录 [SpringBoot] 后端工程化1 需求2 开发流程3 RequestController 类(操作类)3.1 简单参数(形参名和请求参数名一致)3.2 简单参数(形参名和请求参数名不一致)3.3 复杂实体参数3.4 数组参数3.5 集合参…

【从0到1开发一个网关】网关Mock功能的实现

文章目录 什么是Mock?如何实现Mock什么是Mock? Mock(模拟)是一种测试技术,用于创建虚拟对象来模拟真实对象的行为。Mock对象模拟了真实对象的行为,但是不依赖于真实对象的实现细节。它们可以在测试中替代真实对象,以便进行独立的单元测试。 需要使用Mock的原因包括以下几…

COOHOM通过采用亚马逊云科“专库专用”的方式,为云原生的构建提供稳定的数据支撑

全球化浪潮下,面对全球化业务发展带来的新需求与新挑战,越来越多的企业开启了云原生构建旅程,以推动业务系统快速迭代,为国际业务的拓展打下坚实的基础。COOHOM是杭州群核信息技术有限公司旗下的国际化品牌。为全球企业和个人提供…

《面向对象软件工程》笔记——1-2章

“学习不仅是一种必要,而且是一种愉快的活动。” - 尼尔阿姆斯特朗 文章目录 第一章 面向对象软件工程的范畴历史方面经济方面维护方面现代软件维护观点交付后维护的重要性 需求、分析和设计方面团队开发方面没有计划,测试,文档阶段的原因面向…

8-3、T型加减速单片机程序【51单片机控制步进电机-TB6600系列】

摘要:根据前两节内容,已完成所有计算工作,本节内容介绍具体单片机程序流程及代码 一、程序流程图 根据前两节文章内容可知,T型加减速的关键内容是运动类型的判断以及定时器初值的计算,在输出运动参数后即可判断出运动…

Oracle(13)Maintaining Data Integrity

目录 一、基础知识 1、Data Integrity 数据库的完整性 2、Types of Constraints 约束类型 3、Constraint States 约束状态 4、Guidelines for Constraints 约束准则 二、基础操作 1、Enabling Constraints 启用约束 2、命令方式创建约束 3、修改表创建的约束 4、删除约…

JavaScript_Element对象_方法

1、Element.focus() Element.focus方法用于将当前页面的焦点,转移到指定元素上 2、Element.blur() Element.blur方法用于将焦点从当前元素移除 3、Element.remove() Element.remove方法用于将当前元素节点从它的父节点移除 4、Element.getBoundingClientRect() …

常用的电子邮件服务提供商有哪些?

当我们讨论常用的电子邮件服务时,可以根据国内和国外进行分类观察。以下是一些常见的国内和国外电子邮件服务。 什么是国外邮箱和国内邮箱? 国外邮箱是指在国外注册和使用的电子邮箱,而国内邮箱则是在国内注册和使用的电子邮箱。 国外邮箱是指…

链表(1)

目录 单链表 主函数test.c test1 test2 test3 test4 头文件&函数声明SList.h 函数实现SList.c 打印SLPrint 创建节点CreateNode 尾插SLPushBack 头插SLPushFront 头删SLPopBck 尾删SLPopFront 易错点 本篇开始链表学习。今天主要是单链表&OJ题目。 单链…

2.3 CSS 属性样式

1.字体属性 font-size:字体大小 Chrome浏览器支持的最小文字为12px,默认的文字大小为16px,并且0px会自动消失。不同浏览器默认的字体大小可能不一致,所以最好给一个明确的值,不要用默认大小。通常以给body设置font-si…

接口请求断言

接口请求断言是指在发起请求之后,对返回的响应内容去做判断,用来查看是否响应内容是否与规定的返回值相符。 在发起请求后,我们使用一个变量 r 存储响应的内容,也就是 Response 对象。 Response 对象有很多功能强大的方法可以调…

城市内涝怎么预警?万宾科技内涝积水监测仪

在城市运行过程中,城市内涝问题频繁出现,影响城市管理水平的提升,也会进一步减缓城市基础设施建设。尤其近几年来,城市内涝灾害频繁出现,在沿海地区内涝所带来的安全隐患成为城市应急管理部门的心头大患。城市内涝的背…

NIO和BIO

一:异步和同步的区别 同步:调用者要一直等待调用结果的通知后才能进行后续的执行 异步:指被调用方先返回应答让调用者先回去,然后再计算调用结果,计算完最终结果后再通知并返回给调用方 理解:同步、异步的…

Java8 时间字符串校验是否为对应的日期格式

时间字符串格式校验 严格模式下校验日期字符串 public static boolean isDateStrict(String dateStr, String pattern) {try {DateTimeFormatter formatter new DateTimeFormatterBuilder().appendPattern("yyyyMMdd").parseDefaulting(ChronoField.ERA, 1).toFor…

【JVM系列】- 挖掘·JVM堆内存结构

挖掘JVM堆内存结构 文章目录 挖掘JVM堆内存结构堆的核心概念堆的特点 堆的内存结构内存划分新生代/新生区(Young Generation)老年代(Tenured Generation)永久代(或元数据区)(PermGen 或 MetaSpa…

2023.11.4 Idea 配置国内 Maven 源

目录 配置国内 Maven 源 重新下载 jar 包 配置国内 Maven 源 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> …

顺序表学习笔记(基础)

属于线性表旗下的一种&#xff0c;所以专门存储 one-to-one 关系的数据。 顺序表提供的具体实现方案是&#xff1a;将数据全部存储到一整块内存空间中&#xff0c;数据元素之间按照次序挨个存放。&#xff08;类似数组&#xff09; 顺序表中除了存储数据本身的值外&#xff0…

ChatGPT对未来发展的影响?一般什么时候用到GPT

ChatGPT以其强大的自然语言处理能力对未来的发展具有重要影响。以下是ChatGPT的潜在影响和一般使用情况&#xff1a; 改善自然语言理解和生成&#xff1a;ChatGPT和类似的模型可以改善机器对人类语言的理解和生成。这将有助于改进各种应用领域&#xff0c;包括智能助手、聊天机…