数据库自治服务DAS提供搜索(审计)功能,查询并导出SQL语句对应的各种信息,本文介绍如何在SQL洞察和审计中使用搜索功能。
如果您开通了DAS企业版 V3,搜索功能将更名为审计功能。
前提条件
- 已在DAS中接入对应的数据库实例,并且接入状态显示为接入正常。 
- 实例已开启SQL洞察和审计,详情请参见开启SQL洞察和审计。 
- 通过RAM用户使用搜索功能时,需要为RAM用户授予AliyunHDMReadOnlyWithSQLLogArchiveAccess权限,详情请参见通过系统权限策略授权子账号。 说明- 您也可以通过自定义权限策略授予RAM用户使用搜索(包含导出)功能的权限,详情请参见通过自定义权限策略授权RAM用户使用SQL洞察和审计的搜索(包含导出)功能。 
支持的数据库和地域
DAS企业版各个版本支持的数据库和地域,详情请参见产品系列说明。
注意事项
- 日志列表中SQL语句的状态为成功时,只表示该条SQL执行成功且没有异常。例如,发生事务回滚时,事务中的单条SQL执行成功且没有异常,那么日志列表中该条SQL的状态会标识为成功。 
- 对于RDS MySQL和PolarDB MySQL版实例,由于连接可能会被复用,所以日志列表中显示的IP地址和端口,可能会与客户端实际的IP地址和端口不一致。详情请参见RDS MySQL的连接池或PolarDB MySQL版的连接池。 
- SQL日志中记录的SQL语句最大长度为8192字节,超过部分不再记录。其中RDS MySQL和PolarDB MySQL版实例记录的SQL语句最大长度受参数控制: - 当参数取值小于等于8192字节时,SQL语句最大长度为参数设定值,超过部分不再记录。由于信息采集处理时会增加前缀标注,实际记录的SQL语句最大长度略小于参数设定值。 
- 当参数取值大于8192字节时,SQL语句最大长度为8192字节,超过部分不再记录。由于信息采集处理时会增加前缀标注,实际记录的SQL语句最大长度略小于8192字节。 
 说明- RDS MySQL和PolarDB MySQL版的5.6、5.7版本由loose_rds_audit_max_sql_size参数控制记录长度。 
- RDS MySQL和PolarDB MySQL版的8.0版本由loose_rds_audit_log_event_buffer_size参数控制记录长度。 
 
- 开启高级查询时,当数据库实例的版本满足如下要求时,支持使用事务ID进行查询。 - RDS MySQL的大版本为8.0且小版本大于等于20210311,并且查询前需将loose_rds_audit_log_version参数值设为MYSQL_V3。详见RDS MySQL 8.0开放参数一览表。 
- PolarDB MySQL版的版本大于等于8.0.1.1.15。 
 
操作步骤
- 登录DAS控制台。 
- 在左侧导航栏中,单击智能运维中心 > 实例监控。 
- 找到目标实例,单击实例ID,进入目标实例详情页。 
- 在左侧导航栏单击SQL洞察和审计,然后在右侧打开的页面单击搜索,设置如下参数作为查询条件。 - 如果您开通了DAS企业版 V3,请在右侧打开的页面单击审计。 - 参数 - 说明 - 时间范围 - 根据实际需要选择查询的时间范围。 - 在线查询时间范围最多为24小时,您可以在数据库实例SQL数据存储时长范围内设置任意的查询开始时间,查看最多24小时的数据。这是因为SQL洞察记录所有数据库行为,会记录大量SQL语句,在线查询选择时间范围过大,会导致长时间没有返回查询结果,甚至查询超时。 说明- 只能查询开启DAS企业版后且在SQL数据存储时长范围内的数据。 
- 如果需要查询更大时间范围的SQL记录,请您导出后进行查询。导出功能会异步导出日志,适合大时间范围内的查询。 
- 当SQL洞察和审计的数据采用冷热混合存储时,当前只支持查询和导出最多24小时的数据。 
 - 关键字 - 可多字段组合查询,不支持模糊查询,字段间以空格分隔。 说明- 查询的关键字至少包含4个字符。 - 用户 - 用户名,可组合查询,如:user1 user2 user3。 - 数据库 - 可组合查询,如:DB1 DB2 DB3。 - 操作类型 - 选择需要查询的操作类型,可多选。 说明- 您可开启高级查询输入更多信息以缩小搜索范围。 
- 单击查询,即可看到日志列表中SQL语句的具体信息。 - 您可单击导出,勾选需要的导出字段来导出SQL记录。通过设置导出时间范围来导出更大时间范围的SQL记录。 - 对于采用冷热混合存储的SQL洞察和审计,导出数据时,请选择SQL日志中不包含的CSV分隔符,并参见设置并打开导出的CSV文件,使导出数据可以分列显示。 重要- 单次最多可导出7天内的1000万条数据。 
- 对于采用冷热混合存储的SQL洞察和审计,查询或导出冷存储的数据时,系统会创建对应的查询或导出任务,您可以在任务列表页面,查看任务进度及历史任务。 
- 对于企业版 V0 和V1,DAS将保存最近2天内的导出记录;而对于企业版 V2 和V3,DAS将保存最近7天内的导出记录。 
- 仅支持查询或导出开启审计日志之后的数据。 
  
设置并打开导出的CSV文件
当导出的SQL日志包含数据分隔符时,使用Excel等工具打开CSV文件时可能会出现数据没有分列显示的现象。为了避免该问题,采用冷热混合存储的搜索功能在导出CSV文件时,增加了可供选择的CSV分隔符。本文以Windows系统下的Excel 2019版为例,介绍如何设置CSV文件,使导出数据可以分列显示。
- 创建导出任务时,在提示界面,选择SQL日志中不包含的分隔符,例如 - $。 
- 使用Excel工具打开导出的CSV文件。 
- 选中需要分列显示的数据,在Excel工具栏中选择数据 > 分列。 
- 在文本分列向导的原始数据类型区域,选择分隔符号,单击下一步。 
- 在分隔符号区域,选择其他并输入 - $,单击下一步。- 在数据预览区域,可预览分列的效果。 
- 在列数据格式区域,选择常规,单击完成。 
常见问题
相关API
对于RDS MySQL、RDS PostgreSQL和RDS SQL Server数据库实例可以使用如下API接口查询SQL日志:
| API | 描述 | 
| 查询RDS实例的SQL洞察(SQL审计)日志。 | |
| 查询SQL洞察(SQL审计)导出文件列表。 |