审计日志
数据库安全管理员可以利用审计日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。审计功能开启时会不断产生大量的审计日志,占用磁盘空间。用户可以根据磁盘空间的大小设置审计日志维护策略。
日志存储路径
默认$GAUSSLOG/pg_audit,如果使用om工具部署集群,则审计日志路径为“$GAUSSLOG/pg_audit/实例名称”。日志存储路径支持由GUC参数audit_directory自主配置路径。
日志查询方法
只有拥有AUDITADMIN属性的用户才可以查看审计记录。查询方法如下:
- 查询传统审计记录。
1gaussdb=# SELECT * FROM gs_query_audit('2021-03-03 21:30:00', '2021-03-03 22:00:00') where type = 'login_success' and username = 'user1';
- 查询所有CN节点传统审计记录。
1gaussdb=# SELECT * FROM gs_query_audit_dist('2021-03-03 21:30:00', '2021-03-03 22:00:00') where type = 'login_success' and username = 'user1';
- 查询统一审计记录。
1 | gaussdb=# SELECT * FROM gs_query_unified_audit('2025-04-26 08:00:00','2025-04-26 17:00:00')where type = 'login_success' and username = 'user1'; |
starttime和endtime的差值代表要查询的时间段,其有效值为从starttime日期中的00:00:00开始到endtime日期中的23:59:59之间的任何值。请正确指定这两个参数,否则将查不到需要的审计信息。
日志内容说明
日志中各个字段的描述参见gs_query_audit函数定义,如表1。
| 名称 | 描述 |
|---|---|
| time | 操作时间。 |
| type | 操作类型。 |
| result | 操作结果。 |
| userid | 用户id。 |
| username | 执行操作的用户名。 |
| database | 数据库名称。 |
| client_conninfo | 客户端连接信息。 |
| object_name | 操作对象名称。 |
| detail_info | 执行操作详细信息。 |
| node_name | 节点名称。 |
| thread_id | 线程id。 |
| local_port | 本地端口。 |
| remote_port | 远端端口。 |
日志中各个字段的描述参见gs_query_unified_audit函数定义,如表2。
| 名称 | 描述 |
|---|---|
| time | 操作时间。 |
| type | 操作类型。 |
| result | 操作结果。 |
| userid | 用户ID。 |
| username | 执行操作的用户名。 |
| database | 数据库名称。 |
| client_conninfo | 客户端连接信息。 |
| object_name | 操作对象名称。 |
| detail_info | 执行操作详细信息。 |
| node_name | 节点名称。 |
| thread_id | 线程ID。 |
| local_port | 本地端口。 |
| remote_port | 远端端口。 |
| policy_id | 统一审计策略ID。 |
| unified_audit_type | 统一审计策略类型。 |
| unified_audit_policy | 统一审计策略信息。 |