# 操作审计
#### audit_system_object
**参数说明：**该参数表示是否对数据库对象的CREATE、DROP、ALTER等操作进行审计。数据库对象包括DATABASE、USER、SCHEMA、TABLE等。通过修改该配置参数的值，可以只审计需要的数据库对象的操作。
**参数类型** **：**整型
**参数单位** **：**无
**取值范围：** 0 \~ 1073741823
- 0：表示关闭数据库对象的CREATE、DROP、ALTER等操作审计功能。
- 非0：表示只审计某类或者某些数据库对象的CREATE、DROP、ALTER等操作。
 
**取值说明**：
该参数的值由30个二进制位的组合求出，这30个二进制位分别代表30类数据库对象。如果对应的二进制位取值为0，表示不审计对应的数据库对象的CREATE、DROP、ALTER等操作；取值为1，表示审计对应的数据库对象的CREATE、DROP、ALTER等操作。这30个二进制位代表的具体审计内容请参见[表1]。
用于记录SQL PATCH的参数存在特殊性，如果对该对象进行审计且audit_dml_state_select也开启时，对于一条SQL PATCH操作的审计日志会作为DML和DDL被记录两次，如果调用remote接口，则会在入参对应的节点上产生DDL日志，而不是在下发语句的节点上。
**默认值：**67121159（十进制），对应二进制为：00 0100 0000 0000 0011 0000 0000 0111，表示对DATABASE、SCHEMA、USER、NODE GROUP、SQLPatch这五种数据库对象的DDL操作进行审计。
**设置方式** **：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**根据业务需要设置记录审计的数据库对象类型。在主备强制选主场景建议audit_system_object取最大值，审计表1中的所有对象。
**设置不当的风险与影响：**需要审计的对象类型越多，对系统性能的影响越大，占用的系统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、VACUUM、ANALYZE操作。                                                                                                                                                                 | - 0表示不审计该对象的CREATE、DROP、ALTER、TRUNCATE、VACUUM、ANALYZE操作。  - 1表示审计该对象的CREATE、DROP、ALTER、TRUNCATE、VACUUM、ANALYZE操作。       |
| 第4位   | 是否审计INDEX对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                         | - 0表示不审计该对象的CREATE、DROP、ALTER操作。  - 1表示审计该对象的CREATE、DROP、ALTER操作。                                                       |
| 第5位    | - 是否审计VIEW对象的CREATE、DROP、ALTER操作。  - 是否审计MATVIEW对象的CREATE、DROP操作。   | - 0表示不审计VIEW对象的CREATE、DROP、ALTER操作和MATVIEW对象的CREATE、DROP操作。  - 1表示审计VIEW对象的CREATE、DROP、ALTER操作和MATVIEW对象的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操作。                                                                                                                                                                                                                                  | - 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操作。                                                                                                                                                                                                                                 | - 0表示不审计DBLINK对象的CREATE、ALTER、DROP操作。  - 1表示审计DBLINK对象的CREATE、ALTER、DROP操作。                                                                                                                                                                                                                                                        |
| 第29位                                            | 是否审计RESOURCE LABEL、MASKING POLICY、AUDIT POLICY对象的CREATE、DROP、ALTER操作。                                                                                                                                                                                               | - 0表示不审计RESOURCE LABEL、MASKING POLICY、AUDIT POLICY对象的CREATE、ALTER、DROP操作。  - 1表示审计RESOURCE LABEL、MASKING POLICY、AUDIT POLICY对象的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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁进行SELECT操作时会频繁记录审计日志，导致数据库性能下降。
#### audit_function_exec
**参数说明：**该参数表示在执行存储过程、匿名块或自定义函数（不包括系统自带函数）时是否记录审计信息。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭对存储过程、匿名块或自定义函数（不包括系统自带函数）执行的审计功能。
- 1：表示开启对存储过程、匿名块或自定义函数（不包括系统自带函数）执行的审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此参数设置为1，当数据库频繁执行存储过程、匿名块或自定义函数时会频繁记录审计日志，导致数据库性能下降。
#### audit_system_function_exec
**参数说明：**这个参数决定在执行白名单内的系统函数时是否记录审计日志。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭系统函数执行的审计功能。
- 1：表示开启系统函数执行的审计功能。
**默认值：**0
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__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                        | clean_abnormal_sql                | abnormal_sql_manage_allowlist       | dsl_add_rule                          | dsl_del_rule                       | dsl_set_rule                                |
| dsl_reload_rule                         | pgxc_fenced_udf_process           | pgxc_terminate_all_fenced_udf_process | -                                        | -                                    | -                                        |
   
![](https://support.huaweicloud.com/distributed-ref-v10-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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__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-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
![](https://support.huaweicloud.com/distributed-ref-v10-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。
#### audit_rollback
**参数说明：**该参数表示是否对rollback操作进行审计。该参数可在PDB级别设置。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭rollback操作审计功能。
- 1：表示开启rollback操作审计功能。
**默认值：**0。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**开启后rollback操作会记录审计。
#### audit_sql_error
**参数说明：**该参数表示是否对执行错误的SQL进行审计。该参数可在PDB级别设置。
**参数类型：**整型
**参数单位：**无
**取值范围：**0、1
- 0：表示关闭执行错误的SQL操作审计功能。
- 1：表示开启执行错误的SQL操作审计功能。
**默认值：**0。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**开启后执行错误的SQL操作会记录审计。
