
# 数据库审计
#### 背景信息
数据库审计功能对数据库系统的安全性至关重要。数据库审计管理员可以利用审计日志信息，重现导致数据库现状的一系列事件，找出非法操作的用户、时间和内容等。
关于审计功能，用户需要了解以下几点内容：
- 审计总开关**audit_enabled**支持动态加载。在数据库运行期间修改该配置项的值会立即生效，无需重启数据库。默认值为on，表示开启审计功能。
- 除了审计总开关，各个审计项也有对应的开关。只有开关开启，对应的审计功能才能生效。
- 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值，不需要重启数据库便可生效。
目前，GaussDB支持以下审计项如[表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、SQL Patch这四类数据库对象的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功能。                                                            |
   
