
# 操作审计
#### audit_system_object
**参数说明：** 该参数表示是否对数据库对象的CREATE、DROP、ALTER等操作进行审计。数据库对象包括DATABASE、USER、SCHEMA、TABLE等。通过修改该配置参数的值，可以只审计需要的数据库对象的操作。**参数类型** **：**整型
**参数单位** **：**无
**取值范围：** 0 \~ 536870911
- 0代表关闭数据库对象的CREATE、DROP、ALTER等操作审计功能。
- 非0代表只审计某类或者某些数据库对象的CREATE、DROP、ALTER等操作。
 
**取值说明**：
该参数的值由29个二进制位的组合求出，这29个二进制位分别代表29类数据库对象。如果对应的二进制位取值为0，表示不审计对应的数据库对象的CREATE、DROP、ALTER等操作；取值为1，表示审计对应的数据库对象的CREATE、DROP、ALTER等操作。这29个二进制位代表的具体审计内容请参见[表1]。
用于记录SQL PATCH的参数存在特殊性，如果对该对象进行审计且audit_dml_state_select也开启时，对于一条SQL PATCH操作的审计日志会作为DML和DDL被记录两次，如果调用remote接口，则会在入参对应的节点上产生DDL日志，而不是在下发语句的节点上。
**默认值：**67121159（十进制），对应二进制为：0 0100 0000 0000 0011 0000 0000 0111，表示对DATABASE、SCHEMA、USER、NODE GROUP、SQLPatch这五种数据库对象的DDL操作进行审计。
**设置方式** **：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**根据业务需要设置记录审计的数据库对象类型。在主备强制选主场景建议audit_system_object取最大值，所有DDL对象全部审计。
**设置不当的风险与影响：**需要审计的对象越多，对系统性能的影响越大，占用的系统CPU和I/O越多。
 表1audit_system_object取值含义说明 
| 二进制位 | 含义                                                               | 取值说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| 第0位  | 是否审计DATABASE对象的CREATE、DROP、ALTER操作。                              | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第1位  | 是否审计SCHEMA对象的CREATE、DROP、ALTER操作。                                | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                       |
| 第2位  | 是否审计USER和USER MAPPING对象的CREATE、DROP、ALTER操作。                     | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第3位  | 是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。                        | - 0表示不审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。  - 1表示审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。   |
| 第4位  | 是否审计INDEX对象的CREATE、DROP、ALTER操作。                                 | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第5位  | 是否审计VIEW/MATVIEW对象的CREATE、DROP操作。                                | - 0表示不审计该对象的CREATE、DROP操作。  - 1表示审计该对象的CREATE、DROP操作。                                   |
| 第6位  | 是否审计TRIGGER对象的CREATE、DROP、ALTER操作。                               | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第7位  | 是否审计PROCEDURE/FUNCTION对象的CREATE、DROP、ALTER操作。                    | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第8位  | 是否审计TABLESPACE对象的CREATE、DROP、ALTER操作。                            | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                          |
| 第9位  | 是否审计RESOURCE POOL对象的CREATE、DROP、ALTER操作。                         | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第10位 | 是否审计WORKLOAD对象的CREATE、DROP、ALTER操作。                              | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                     |
| 第11位 | 是否审计SERVER对象的CREATE、DROP、ALTER操作                                 | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                                     |
| 第12位 | 保留                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 第13位 | 是否审计NODE GROUP对象的CREATE、DROP操作。                                  | - 0表示不审计该对象的CREATE、DROP操作。    - 1表示审计该对象的CREATE、DROP操作。                                                                                                                              |
| 第14位 | 是否审计ROW LEVEL SECURITY对象的CREATE、DROP、ALTER操作。                    | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                                |
| 第15位 | 是否审计TYPE对象的CREATE、DROP、ALTER操作。                                  | - 0表示不审计TYPE对象的CREATE、DROP、ALTER操作。  - 1表示审计TYPE对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                         |
| 第16位 | 是否审计TEXT SEARCH对象（CONFIGURATION和DICTIONARY）的CREATE、DROP、ALTER操作。 | - 0表示不审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。  - 1表示审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                    |
| 第17位 | 是否审计DIRECTORY对象的CREATE、DROP、ALTER操作。                             | - 0表示不审计DIRECTORY对象的CREATE、DROP、ALTER操作。  - 1表示审计DIRECTORY对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                 |
| 第18位 | 是否审计SYNONYM对象的CREATE、DROP、ALTER操作。                               | - 0表示不审计SYNONYM对象的CREATE、DROP、ALTER操作。  - 1表示审计SYNONYM对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                    |
| 第19位 | 是否审计SEQUENCE对象的CREATE、DROP、ALTER操作。                              | - 0表示不审计SEQUENCE对象的CREATE、DROP、ALTER操作。  - 1表示审计SEQUENCE对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                  |
| 第20位 | 是否审计CMK、CEK对象的CREATE、ALTER、DROP操作。                               | - 0表示不审计CMK、CEK对象的CREATE、ALTER、DROP操作。  - 1表示审计CMK、CEK对象的CREATE、ALTER、DROP操作。                                                                                                                                                                                                                         |
| 第21位 | 是否审计PACKAGE对象的CREATE、DROP、ALTER操作（目前仅集中式支持PACKAGE）。              | - 0表示不审计PACKAGE对象的CREATE、DROP、ALTER操作。  - 1表示审计PACKAGE对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                                                           |
| 第22位 | 保留                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 第23位 | 保留                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 第24位 | 是否审计对gs_global_config全局对象的ALTER、DROP操作。                          | - 0表示不审计对系统表gs_global_config全局对象的ALTER、DROP操作。  - 1表示审计对系统表gs_global_config全局对象的ALTER、DROP操作。                                                                                                                                                                                                       |
| 第25位 | 是否审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作，目前该功能暂不支持。        | - 0表示不审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。  - 1表示审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                           |
| 第26位 | 是否审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。                    | - 0表示不审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。  - 1表示审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。                                                                                                                                                                                                |
| 第27位 | 保留                                                               | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 第28位 | 是否审计DBLINK对象的CREATE、ALTER、DROP操作。目前DATABASE LINK功能暂不支持。          | - 0表示不审计DBLINK对象的CREATE、ALTER、DROP操作。  - 1表示审计DBLINK对象的CREATE、ALTER、DROP操作。                                                                                                                                                                                                                      |
   
#### audit_dml_state
**参数说明：**该参数表示是否对所有表的INSERT、UPDATE、DELETE、MERGE操作进行审计。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭所有表的INSERT、UPDATE、DELETE、MERGE操作审计功能。
- 1：表示开启所有表的INSERT、UPDATE、DELETE、MERGE操作审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁进行INSERT、UPDATE、DELETE、MERGE操作时会频繁记录审计日志，导致数据库性能下降。
#### audit_dml_state_select
**参数说明：**该参数表示是否对SELECT操作进行审计。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭SELECT操作审计功能。
- 1：表示开启SELECT操作审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁进行SELECT操作时会频繁记录审计日志，导致数据库性能下降。
#### audit_function_exec
**参数说明：**该参数表示在执行存储过程、匿名块或自定义函数（不包括系统自带函数）时是否记录审计信息。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭对存储过程、匿名块或自定义函数（不包括系统自带函数）执行的审计功能。
- 1：表示开启对存储过程、匿名块或自定义函数（不包括系统自带函数）执行的审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁执行存储过程、匿名块或自定义函数时会频繁记录审计日志，导致数据库性能下降。
#### audit_system_function_exec
**参数说明：**这个参数决定在执行白名单内的系统函数时是否记录审计日志。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭系统函数执行的审计功能。
- 1：表示开启系统函数执行的审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁执行白名单内系统函数时会频繁记录审计日志，导致数据库性能下降。
支持记录审计的系统函数白名单如下表所示：
|                                              set_working_grand_version_num_manually                                              |            set_config             |        pg_terminate_backend        |            pg_cancel_backend             |         pg_cancel_session          |          pg_cancel_invalid_query           |
|---|---|---|---|---|---|
| pg_reload_conf                                                                                                                   | pg_rotate_logfile                 | pg_terminate_session               | pg_terminate_backend                     | pg_start_backup                    | pg_stop_backup                             |
| pg_create_restore_point                                                                                                          | pg_switch_xlog                    | pg_cbm_get_merged_file             | pg_cbm_recycle_file                      | pg_enable_delay_ddl_recycle        | pg_disable_delay_ddl_recycle               |
| pg_cbm_rotate_file  | gs_roach_enable_delay_ddl_recycle | gs_roach_disable_delay_ddl_recycle | gs_roach_stop_backup                     | pg_last_xlog_receive_location      | pg_xlog_replay_pause                       |
| pg_xlog_replay_resume                                                                                                            | gs_roach_switch_xlog              | gs_pitr_archive_slot_force_advance | gs_pitr_clean_history_global_barriers    | gs_download_obs_file               | gs_upload_obs_file                         |
| gs_set_obs_file_context                                                                                                          | gs_set_obs_delete_location        | gs_hadr_do_switchover              | gs_set_obs_delete_location_with_slotname | gs_streaming_dr_in_switchover      | pg_advisory_lock                           |
| pg_advisory_lock_shared                                                                                                          | pg_advisory_unlock                | pg_advisory_unlock_shared          | pg_advisory_unlock_all                   | pg_advisory_xact_lock              | pg_advisory_xact_lock_shared               |
| pg_try_advisory_lock                                                                                                             | pg_try_advisory_lock_shared       | pg_try_advisory_xact_lock          | pg_try_advisory_xact_lock_shared         | gs_get_hadr_key_cn                 | pg_create_physical_replication_slot_extern |
| pg_create_logical_replication_slot                                                                                               | pg_drop_replication_slot          | pg_logical_slot_peek_changes       | pg_logical_slot_get_changes              | pg_logical_slot_get_binary_changes | pg_replication_origin_drop                 |
| pg_replication_origin_session_reset                                                                                              | local_space_shrink                | gs_space_shrink                    | global_space_shrink                      | pg_free_remain_segment             | gs_fault_inject                            |
| sqladvisor.init                                                                                                                  | sqladvisor.set_weight_params      | sqladvisor.set_cost_params         | sqladvisor.assign_table_type             | gs_repair_file                     | local_clear_bad_block_info                 |
| gs_repair_page                                                                                                                   | -                                 | -                                  | -                                        | -                                  | -                                          |
   
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
在系统函数执行这类审计事件的审计记录中，object_name字段的内容为系统函数名，不再带函数参数。
#### audit_copy_exec
**参数说明：**这个参数决定是否对COPY操作进行审计。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭COPY审计功能。
- 1：表示开启COPY审计功能。
**默认值：**1
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁执行COPY操作时会频繁记录审计日志，导致数据库性能下降。
#### audit_set_parameter
**参数说明：**该参数表示是否对SET操作进行审计。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭SET审计功能。
- 1：表示开启SET审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁执行SET操作时会频繁记录审计日志，导致数据库性能下降。
#### audit_xid_info
**参数说明：**该参数决定是否在审计日志字段detail_info中记录SQL语句的事务ID。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭审计日志记录事务ID功能。
- 1：表示开启审计日志记录事务ID功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
如果开启此开关，审计日志中detail_info信息则以xid开始，例如：
```
detail_info: xid=14619 , create table t1(id int);
```
对于不存在事务ID的审计行为，则记录xid=NA。
#### enableSeparationOfDuty
**参数说明：**是否开启三权分立选项。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示开启三权分立。
- off：表示不开启三权分立。
**默认值：**off
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为on，系统管理员权限会受限制，部分之前可以执行的操作会无法执行。
#### enable_nonsysadmin_execute_direct
**参数说明：**是否允许非系统管理员和非监控管理员执行EXECUTE DIRECT ON语句。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示允许任意用户执行EXECUTE DIRECT ON语句。
- off：表示只允许系统管理员和监控管理员执行EXECUTE DIRECT ON语句。
**默认值：**off
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### enable_access_server_directory
**参数说明：**是否允许非初始用户创建、修改和删除DIRECTORY对象。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：表示允许非初始用户创建、修改和删除DIRECTORY对象。
- off：表示不允许非初始用户创建、修改和删除DIRECTORY对象。
**默认值：**off
**设置方式：** 该参数属于SIGHUP类型参数，请参考[表1](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0254.html#ZH-CN_TOPIC_0000002527826790__zh-cn_topic_0000002558055361_zh-cn_topic_0000002338364610_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- 用户在使用高级包UTL_FILE访问服务器端文件时，要求必须拥有所指定的DIRECTORY对象的权限。
- 出于安全考虑，默认情况下，只有初始用户才能够创建、修改、删除DIRECTORY对象。
- 如果开启了enable_access_server_directory，具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象；具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象；具有SYSADMIN权限的用户和directory对象的属主可以修改directory对象的所有者，且要求该用户是新属主的成员。
 
