
# 下载SQL审计日志
#### 操作场景
当您[开启SQL审计功能](https://support.huaweicloud.com/usermanual-rds-mysql/rds_sql_auditing_log.html)，系统会将所有的SQL操作记录下来，并在半小时或累积到100MB上传存入日志，方便用户进行下载、查询操作，审计日志的最小计时单位是秒。RDS for MySQL默认关闭SQL审计功能，打开可能会有一定的性能影响。
#### 约束限制
- 批量下载SQL审计日志建议选择不多于6个文件下载，由于浏览器的并发请求数的限制，可能会导致文件下载不全。
- 审计日志中新增的trx_id和execute_time字段仅针对RDS for MySQL 8.0.43.260300及以上版本。
 
#### 操作步骤
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页签。
4. 在左侧导航栏单击"日志管理"，选择"SQL审计日志"。
5. 在审计日志列表右上方选择时间范围，勾选目标日志，并单击列表左上方的"下载"，批量下载SQL审计日志。 
   您还可以选择单个审计日志，单击操作列中的"下载"，下载目标SQL审计日志。
   
   
6. SQL审计日志内容如下图所示。字段说明请参考[表1]。
   
   图1RDS for MySQL审计日志   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002247141637.png "点击放大")
    表1审计日志字段说明 
   | 参数                | 说明                                                   |
   |:---|:---|
   | record_id         | 审计日志单条记录的记录ID，记录审计日志的每条SQL的唯一global id。              |
   | connection_id     | 该条记录执行的会话ID，与show processlist中的ID一致。                 |
   | connection_status | 会话状态，常见为执行语句的错误返回码，普通执行成功返回0。                        |
   | name              | 记录类型名称，通常情况下dml，ddl操作均为QUERY， 连接断开为CONNECT和QUIT。     |
   | timestamp         | 记录SQL执行完成时的UTC时间。                                    |
   | command_class     | 执行的SQL命令类型，内部为解析得到的SQL类型，例如select，update（连接断开不存在该项）。 |
   | sqltext           | 执行的SQL具体内容（连接断开审计不存在该项）。                             |
   | user              | 登录的账户。                                               |
   | host              | 登录的host，当本地登录时为localhost，远程登录为空。                     |
   | external_user     | 代理用户名称。                                              |
   | ip                | 通过远程连接的客户端IP，本地连接为空。                                 |
   | default_db        | 执行SQL时默认的数据库。                                        |
   | trx_id            | 执行SQL时的事务ID。                                         |
   | execute_time      | 执行SQL的耗时，单位：ms。                                      |
      
   
   
 
#### 常见问题
问：为什么当前连接的是A库，向B库插入数据，SQL审计日志default_db字段显示为"A"？
答：SQL审计日志default_db显示的是当前所在的数据库，与插入数据的SQL无关。例如：执行**use db1;**或连接db1的SQL，当前所在的数据库名（default_db）是db1；如果没有指定数据库，所在的数据库（default_db）为空。
#### 相关API
[生成审计日志下载链接](https://support.huaweicloud.com/api-rds/rds_05_0004.html)
