DBLOG
» WTF
Toggle navigation
DBLOG
主页
OCM
1、概览
2、数据导入导出
3、GaussDB(DWS)数据库管理
4、数据库调优与开发实践
5、湖仓一体
6、开发应用
7、集群管理
8、巡检和维运维
About Me
归档
标签
9、审计日志
无
2025-05-22 15:09:00
0
0
0
admin
# 基本概念 - **数据库审计**:属于数据库安全技术之一,主要用于监视并记录用户在数据库系统中的操作行为。审计日志记录操作行为的结果,具体作用包括: - 提高数据库安全级别。 - 记录和分析用户访问数据库的行为。 - 支持对数据库操作的细粒度筛选。 - 追溯事故,防止抵赖。 - 识别安全威胁。 --- # 审计日志管理 — 日志文件管理 GaussDB(DWS)使用一些参数控制审计日志的存储目录、大小、保存策略等。 | 参数名称 | 类型 | 参数范围 | 参数说明 | |------------------------------|---------|----------------|----------------------------------------------------------| | audit_directory | string | mpp/用户名/pg_audit | 审计文件的存储目录。 | | audit_data_format | binary | binary | 审计日志文件的格式(当前仅支持二进制格式)。 | | audit_rotation_interval | int | 1440 | 创建一个新审计日志文件的时间间隔(分钟)。 | | audit_rotation_size | int | 10MB | 单个审计日志文件的最大容量。 | | audit_resource_policy | bool | on/off | 审计日志的保存策略。 | | audit_space_limit | int | 1GB | 审计文件占用的磁盘空间总量。 | | audit_file_remain_time | int | 90d | 审计日志文件的最小保存时间(天)。 | | audit_file_remain_threshold | int | 1048576 | 审计目录下审计文件的最大数量。 | --- # 审计日志管理 — 语句记录管理 GaussDB(DWS)支持语句类型和操作类型两种方式设置审计粒度。 | 参数名称 | 类型 | 参数范围 | 参数说明 | |------------------------------|---------|----------------|----------------------------------------------------------| | audit_enabled | bool | 0/1 | 控制审计进程的开启和关闭。 | | audit_inner_tool | bool | 0/1 | 是否审计 GaussDB(DWS) 中内部维护工具的各类操作。 | | audit_operation_error | enum | none/syn_success/login/user_lock/violation/grant_revoke/ddl/select/insert/update/delete/merge... | 是否审计执行失败的操作。 | | audit_operation_exec | enum | none/all/login/logout/database_process/user_lock/grant_revoke/ddl/select/insert/update/delete... | 是否审计执行成功的操作。 | | audit_system_object | integer | 0-4194303 | 是否对数据库对象的 CREATE、DROP、ALTER 操作进行审计。 | - `audit_operation_exec`、`audit_operation_error` 参数使用枚举值控制具体的审计语句类型,包括 DML、DQL 等。 - `audit_system_object` 参数使用数字控制具体的审计对象的 CREATE、ALTER、DROP 操作。 --- # 审计日志使用 (1) ### 前提条件: - 需要审计的审计项开关已开启。 - 数据库正常运行,并对数据库执行了一系列增删改查操作,保证在查询时段内有审计结果产生。 - 数据库各个节点审计日志单独记录,如使用了 LVS 负载管理机制,需根据 LVS 日志追溯到具体的执行节点并直接连接该节点查询相关审计日志。 - 只有拥有 AUDITADMIN 属性的用户才可以查看审计记录。 --- # 审计日志使用 (2) ### 审计查询命令 审计日志使用数据库提供的 SQL 函数 `pg_query_audit`,其原型为: ```sql pg_query_audit(timestamptz startime, timestamptz endtime, audit_log) ``` - 参数 `startime` 和 `endtime` 分别表示审计记录的开始时间和结束时间,`audit_log` 表示所查看的审计日志信息所在的物理文件路径。当不指定 `audit_log` 时,默认查看连接当前实例的审计日志信息。 ### 查询所有 CN 节点的审计日志 通过 SQL 函数 `pgxc_query_audit` 查询所有 CN 节点的审计日志,其原型为: ```sql pgxc_query_audit(timestamptz startime, timestamptz endtime) ``` ### 查询单个或所有 CN 节点的审计日志 通过 SQL 函数 `pg_query_audit_details` 可以查询单个 CN 节点或所有 CN 节点的审计日志。该函数可以显示 DML 中列的操作类型: ```sql pg_query_audit(timestamptz startime, timestamptz endtime, node_mode) ``` --- # 审计日志使用 — DQL ### 步骤: 1. 配置审计日志记录语句范围。`audit_operation_exec` 中新增对于视图 DDL 语句类型记录。 2. 执行查询语句。 3. 查询当前 CN 节点的审计日志。 ```sql postgres=# show audit_operation_exec; ``` ```sql postgres=# select command_text from pg_query_audit(sysdate-0.1, sysdate) where command_text like 'select wt1.c1%' order by begintime desc, endtime desc limit 5; ``` --- # 审计日志使用 — DDL ### 步骤: 1. 配置审计日志记录语句范围。`audit_system_object` 中新增对于视图 DDL 语句类型记录。 ```sql postgres=# show audit_system_object; ``` 2. 执行创建视图语句。 ```sql postgres=# create view v1 as select wt1.c1, wt1.c2 from wt1, wt2 where wt1.c2 = wt2.c2 limit 1; ``` 3. 查询当前 CN 节点的审计日志。 ```sql postgres=# select command_text from pg_query_audit(sysdate-0.1, sysdate) where command_text like '%view v1%' order by begintime desc, endtime desc limit 5; ```
上一篇:
8、数据脱敏
下一篇:
M1原题
0
赞
1 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网