
# 开启SQL审计日志
#### 操作场景
RDS for PostgreSQL开启SQL审计后，系统会将SQL操作记录下来，并每半小时或单个记录达到100MB后上传日志，生成的审计日志会上传到OBS。如果审计日志的大小超过了赠送的备份空间容量，就会按照超出的部分进行计费。
#### 注意事项
- 实例创建完成后，默认关闭审计日志，打开会增加数据库负载，请知悉。
- 审计日志为了保证性能，使用UTC时间，不受时区配置的影响。
- 开启审计日志时，系统将自动为指定数据库安装pgaudit插件。开启后如果需要将其他数据库纳入审计范围，请提前手动为该数据库安装pgaudit插件，具体操作可参考[使用pgaudit插件](https://support.huaweicloud.com/usermanual-rds-pg/rds_09_0063.html)。
- 开启审计日志后，默认记录READ、WRITE和DDL类型的SQL语句。如需调整审计范围，请在参数配置界面修改pgaudit.log参数值，具体操作可参考[修改RDS for PostgreSQL实例参数](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_configuration.html)。
 
#### 支持的数据库版本
仅以下版本支持SQL审计功能，如果您的数据库引擎版本较低，请参考[升级内核小版本](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_05_0003.html)或[通过界面升级大版本](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_05_0004.html)升级到最新版本。
- RDS for PostgreSQL 12、13最新小版本

- RDS for PostgreSQL 14及以上的全部版本
 
#### 性能说明
pgaudit的性能影响取决于审计日志的数量和频率。如果审计日志量较小，对性能影响相对较小；如果审计日志量较大，对性能影响会比较明显，审计日志对性能的影响大约在20%左右。因此，在使用pgaudit时，需要根据实际情况进行参数配置和调整，以平衡审计需求和性能影响。
#### 操作步骤
- [开启SQL审计日志]
  1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
  
  2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002606863935.png)，选择区域。
  
  3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页签。
  
  4. 在左侧导航栏单击"日志管理"。
  
  5. 选择"SQL审计日志"页签，单击"设置SQL审计"。
  
  6. 在弹出框中，设置SQL审计日志保留天数，选择数据库，单击"确定"，保存设置策略。 
     保留天数默认为7天，可设置范围为1\~3660天。
     图1设置SQL审计   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002562932591.png "点击放大")
     
     
  
  7. 如需关闭SQL审计，将开关设置为关闭，勾选确认信息后，单击"确定"。 
     ![](https://support.huaweicloud.com/usermanual-rds-pg/public_sys-resources/notice_3.0-zh-cn.png)
     SQL审计关闭后，所有审计日志都会被立即删除，不可恢复，请您谨慎操作。
     图2关闭SQL审计   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002563012487.png "点击放大")
     
     
   
- [配置LTS审计日志并查看分析视图]
  1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
  
  2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002593882307.png)，选择区域。
  
  3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页签。
  
  4. 在左侧导航栏单击"日志管理"。
  
  5. 选择"SQL审计日志"页签，单击页面右上方的"对接LTS配置"。
  
  6. 在右侧弹框中，勾选"日志对接LTS"，日志类型选择审计日志，在下拉框分别选择对应的日志组和日志流，单击"确定"。 
     图3LTS审计日志配置   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002687932612.png "点击放大")
     
     
  
  7. 如果已经配置LTS审计日志，在页面右上方，支持切换成分析视图，查看更详细的日志分析。 
     图4列表视图   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002688302032.png "点击放大")
     图5分析视图   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002688302046.png "点击放大")
     - 在"日志搜索"页签，支持查看快速分析下方的结构化字段和索引配置字段、以及查看并下载日志内容。更多功能介绍，请参见[搜索与分析日志](https://support.huaweicloud.com/usermanual-lts/lts_07_0076.html)。
       关于分析视图中"原始日志"页面各字段说明，请参见[表1]。
        表1LTS审计日志字段说明 
       | 参数                   | 说明                                                                                                                                                                                                                                                                                                                   |
       |:---|:---|
       | _resource_id         | 资源ID，固定值DBS_AUDIT_LOG，用户无需关注。                                                                                                                                                                                                                                                                                        |
       | _resource_name       | 资源名称，固定值DBS_AUDIT_LOG，用户无需关注。                                                                                                                                                                                                                                                                                        |
       | _service_type        | 服务类型，固定值POSTGRESQL。                                                                                                                                                                                                                                                                                                  |
       | transaction_id       | 应用程序名称，如PostgreSQL JDBC Driver。                                                                                                                                                                                                                                                                                      |
       | audit_type           | 当前审计类型，SESSION、OBJECT、CLIENT_AUTHENTICATION。                                                                                                                                                                                                                                                                         |
       | statement_id         | 此会话的唯一语句 ID。                                                                                                                                                                                                                                                                                                         |
       | sub_statement_id     | 主语句中每个子语句的顺序ID。                                                                                                                                                                                                                                                                                                      |
       | class_or_result      | 表示执行的操作类型。 - class值：见pgaudit.log选项，包括READ、ROLE。  - result值：SUCCESS、FAIL。   |
       | pid                  | 进程ID。                                                                                                                                                                                                                                                                                                                |
       | statement_start_time | 语句起始时间戳，以us为单位。                                                                                                                                                                                                                                                                                                      |
       | application_name     | 应用名称。PSQL，JDBC等。                                                                                                                                                                                                                                                                                                     |
       | user_name            | 登录的用户名。                                                                                                                                                                                                                                                                                                              |
       | database_name        | 登录的数据库名。                                                                                                                                                                                                                                                                                                             |
       | remote_host          | 登录的host地址。                                                                                                                                                                                                                                                                                                           |
       | command              | 执行的SQL命令类型，ALTER TABLE、SELECT等。                                                                                                                                                                                                                                                                                      |
       | object_type          | 对象类型，TABLE、INDEX、VIEW等。                                                                                                                                                                                                                                                                                              |
       | object_name          | 对象名。                                                                                                                                                                                                                                                                                                                 |
       | sql_text             | 在后端执行的SQL具体内容。                                                                                                                                                                                                                                                                                                       |
          
       
     
     - 在"统计图表"页签，支持使用表格、柱状图、折线图等图表类型展示不同场景数据。更多功能介绍，请参见[统计图表概述](https://support.huaweicloud.com/usermanual-lts/lts_05_0101.html)。
     
     - 在"日志分析"页签，支持对采集成功的日志数据进行搜索与分析。更多功能介绍，请参见[日志搜索与分析概述](https://support.huaweicloud.com/usermanual-lts/lts_0822.html)。
     
     - 在"实时日志"页签，支持查看实时上报的日志，实现对日志数据的快速检索与分析。更多功能介绍，请参见[查看实时日志](https://support.huaweicloud.com/usermanual-lts/lts_07_0088.html)。
     
     
     
     
   
