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

GaussDB 数据库架构师修炼(十三)安全管理(3)-数据库审计

1 数据库审计作用

数据库审计机制主要通过对SQL操作或其他操作记录审计日志的方式 ,增强数据库系统对非法操作的追溯及举证能力 。高斯数据库提供两种审计特性 :传统审计 ,统一审计。

2 传统审计

传统审计通过GUC参数配置需要对数据库的哪些操作进行审计,并通过将审计记录写入OS文件中(即审 计日志)的方式来保存审计结果 。传统审计特性提供SQL函数接口以供审计管理员查询/删除审计记录。

3 统一审计

统一审计通过定制化审计策略来实现高效安全审计 。管理员可以对数据库中某特定对象(模式//列)打 资源标签,并针对特定资源标签过滤条件创建审计策略DDL/DML)。 当用户执行的任务符合创建的  审计策略时,则数据库会记录下相应的行为并生成审计日志。

  统一审计通过将审计记录发送至本地rsyslogElastic Search服务端来保存审计结果 。管理员可到对应的 日志存储端查看日志。

4 传统审计配置管理-审计配置项开关

传统审计可以记录用户对数据库的启停 连接 DDL DML DCL等操作,通过GUC参数开关控制对哪些操作进行审计。

1) 提供审计总开关参数audit_enabled,参数支持动态加载,在数据库运行期间修改该配置项的值会立即生效 ,无需重启数 据库 。默认值为on,表示开启审计功能。

2) 除了审计总开关,各个审计项也有对应的开关 。只有开关开启,对应的审计功能才能生效。各审计项的开关支持动态加载 。在数据库运行期间修改审计项参数的值,不需要重启数据库便可生效 。提供的审计配置项 开关见下页表格。

3) 审计总开关参数修改:

开启 

gs_guc set -Z coordinator -Z datanode -N all -I all -c "audit_enabled = on"

关闭 

​​​​​​​gs_guc set -Z coordinator -Z datanode -N all -I all -c "audit_enabled = off"

审计项修改 ,以SELECT操作审计项参数audit_dml_state_select为例:

开启SELECT操作审计:

gs_guc set -Z coordinator -Z datanode -N all -I all -c "audit_dml_state_select =  1" 

关闭SELECT操作审计:

gs_guc set -Z coordinator -Z datanode -N all -I all -c "audit_dml_state_select =  0"

 5 传统审计配置管理-审计配置项参

配置项审计开关描述默认值
用户登录、注销审计audit_login_logout表示开启用户登录、退出的审计功能。设置为0   表示关闭用户登录、退出的审计功能。不推荐设 置除0和7之外的值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表示只对DATABASE 、SCHEMA 、USER 、 DATA SOURCE 、NODE  GROUP这五类数据库对象的    CREATE 、ALTER 、DROP操作进行审计67121159
具体表的INSERT 、 UPDATE和DELETE操 作审计audit_dml_state表示关闭具体表的DML操作(SELECT除外)审计 功能0
SELECT操作审计audit_dml_state_select表示关闭SELECT操作审计功能0
COPY审计audit_copy_exec表示打开COPY操作审计功能1
存储过程和自定义函数的执行 审计audit_function_exec表示不记录存储过程和自定义函数的执行 审计日志0
SET审计audit_set_parameter表示记录SET操作审计日志1
执行白名单内的系统函数审计audit_system_function_ exec表示不记录执行系统函数的审计日志0
事务ID记录audit_xid_info表示关闭审计日志记录事务ID功能0
内部工具连接及操作审计、DN上对来自CN的登入登出审 计audit_internal_event表示不对内部工具cm_agent 、gs_clean 、 WDRXdb的登入登出及操作进行审计、 DN 上不对来自CN的登入登出进行审计off

6 传统审计-SQL函数接口

1) 用户可以通过数据库提供的SQL函数接口查看和删除审计日志。

2)查看、删除审计日志需要具有AUDIT  ADMIN属性(审计管理员)的用户或初始用户进行操作。

接口原型参数返回值使用示例
pg_query_audit(timestamptz startime,timestamptz
endtime,audit_log) ;
starttime:查看审计记录的开始时间
endtime:查看审计记录的结束时间
audit_log: 所查看的审计日志信息所在 的物理文件路径
见下表查看2024-03-06 00:00:00至2024-03-06  12:00:00时间段内audit_user用户 的SELECT操作审计记录,并按时间排序:
select * from pg_query_audit('2024-03-06 00:00:00','2024-03-06
12:00:00') where type = 'dml_action_select' and username = 'audit_user' order by time desc;
pg_delete_audit(timestamptz startime,timestamptz
endtime) ;
starttime:删除审计记录的开始时间
endtime:删除审计记录的结束时间
删除2024-03-06 00:00:00至2024-03-06  12:00:00时间段内的审计记录: select * from pg_delete_audit('2024-03-06 00:00:00','2024-03-06
12:00:00');

7 传统审计-日志管理策略

1)数据库提供配置项供用户配置审计日志的管理策略:比如审计日志存放路径等,审计记录占用空 间大小限制,审计文件个数限制,单个审计文件大小限制等,具体见下表。

2)数据库会根据审计日志管理配置项参数,对审计日志进行管理。

配置项

含义

默认值

audit_directory

审计文件的存储目录

$GAUSSLOG/pg_audit

audit_rotation_interval

创建一个新审计日志文件的时间间隔,当距离上次创建一个审计 日志的时间超过了此参数值时,将生成一个新的审计日志文件

1天

audit_rotation_size

审计日志文件的最大容量。当审计日志消息的总量超过此参数值 时,将生成一个新的审计日志文件

10MB

audit_resource_policy

审计日志的保存策略
on:表示采用空间优先策略,最多存储audit_space_limit大小的 日志。
off:表示采用时间优先策略,最少存储audit_file_remain_time 长度时间的日志

on

audit_space_limit

审计文件占用的磁盘空间总量

1GB

audit_file_remain_time

审计日志文件的最小保存时间。

90

audit_file_remain_threshold

审计目录下审计文件的最大数量

1048576

http://www.lryc.cn/news/623049.html

相关文章:

  • 人工智能中的(特征选择)数据过滤方法和包裹方法
  • Linux 下 安装 matlab 2025A
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • python线程学习
  • Leetcode 14 java
  • AI 云电竞游戏盒子:从“盒子”到“云-端-芯”一体化竞技平台的架构实践
  • WSL 配置文件 wsl.conf 设置
  • Windows 基于ACL(访问控制列表)的权限管理
  • LeetCode 55.跳跃游戏:贪心策略下的可达性判断
  • Windows 操作系统 - Windows 恢复浏览器标题栏颜色
  • tensorrt-llm0.20.0:Prometheus3.5.0通过间接采集,进行性能指标分析
  • AirReceiverLite:轻松实现手机隔空投屏
  • 自动驾驶中的传感器技术24.1——Camera(16)
  • 电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
  • 40 C++ STL模板库9-容器2-vector
  • 下载数据集文件夹权限错误问题解决方案
  • PHP域名授权系统网站源码/授权管理工单系统/精美UI/附教程
  • 西门子SMART PLC监控时间戳问题BUG修复
  • weapp:按钮去除背景
  • 云计算-Kubernetes+Istio 实现金丝雀发布:流量管理、熔断、流量镜像、ingreess、污点及pv案例实战
  • leetcode_42 接雨水
  • H20芯片与中国的科技自立:一场隐形的博弈
  • 内网穿透实战笔记 1panel 面板部署 frps,Windows 部署 frpc
  • Win11和Win10共享打印机提示709用添加Windows凭据来解决的小方法
  • 自适应阈值二值化参数详解 ,计算机视觉,图片处理 邻域大小 调整常数(C=3)和可视化调节参数的应用程序
  • vscode中用python调用matlab的函数(环境安装)
  • 计算机网络:(十五)TCP拥塞控制与拥塞控制算法深度剖析
  • 安全审计-firewall防火墙
  • 在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
  • MySQL的《Buffer-pool》和《连接池》介绍