SQL审计
SQL审计功能可以实时记录数据库DML和DDL操作信息,并提供数据库操作信息的检索功能。
使用限制
SQL审计日志不记录以下操作:
INSERT INTO VALUESREPLACE INTO VALUESUPSERT INTO VALUES
开启/关闭SQL审计
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,然后单击目标集群ID。
进入SQL审计页面。
企业版、基础版及湖仓版集群,在左侧导航栏,单击。
数仓版集群,在左侧导航栏,单击数据安全,然后单击SQL审计。
单击右侧SQL审计配置。
在弹出的对话框中,选择是并单击确定。

如不再使用SQL审计功能,可以重复步骤1~4,打开SQL审计配置弹窗,选择否。
重要SQL审计功能关闭后,SQL审计日志会被清空。请先查询和导出SQL审计日志,再关闭SQL审计功能。当再次打开审计日志,审计日志将从最近一次打开审计日志的时间开始展示。
查询和导出SQL审计日志
在SQL审计页面,用户可以根据SQL的操作类型或执行状态等条件查询特定时间段内的SQL审计内容。
仅支持查询最近30天内的SQL审计内容。超过30天,查询为空。
单次查询时间范围不能超过24小时。若需要保存当前页面内容至本地,单击导出当前页即可。
常见问题
为什么INSERT OVERWRITE语句会记录两条审计日志?
INSERT OVERWRITE语句是在AnalyticDB for MySQL内部异步执行的。接入层节点负责将查询任务分配到不同的存储节点,并将最终结果给客户端。因此审计日志不仅记录发起请求的客户端IP,还会记录AnalyticDB for MySQL接入层节点的IP。
为什么SQL审计日志中查不到DROP语句?
当集群开启了表回收站功能时,DROP语句不会写入SQL审计日志。您可以通过以下命令查询当前集群表回收站的开启状态:
SHOW ADB_CONFIG KEY=DROP_FORCE;
返回值为
false:表回收站功能已开启,集群会将DROP语句改写后转入回收站,因此审计日志中查不到该DROP语句。返回值为
true:表回收站功能未开启,DROP语句会正常记录到SQL审计日志中。
通过DTS同步数据后,为什么审计日志中看不到UPDATE语句?
DTS在同步RDS数据时,会将源端的UPDATE语句改写为REPLACE INTO VALUES或DELETE+INSERT组合后写入目标端。由于REPLACE INTO VALUES语句不在SQL审计日志的记录范围内(详情请参见本文使用限制),因此审计日志中无法直接看到UPDATE语句。
相关API
产品系列 | API |
企业版、基础版及湖仓版 | |
数仓版 | |