全部产品
Search
文档中心

云数据库 RDS:SQL洞察和审计

更新时间:Apr 18, 2024

当您在安全合规审计、性能分析、故障排除等场景下需要监控和管理RDS PostgreSQL实例中执行的SQL语句时,可以利用SQL洞察和审计功能对SQL语句的执行情况进行记录和聚合分析。开启该功能后会自动记录来自数据库内核的SQL语句,以及SQL语句的执行账号、IP地址、执行详情等信息,对实例性能没有影响。

前提条件

  • 您的账号已购买DAS企业版。如何购买请参见开通DAS企业版

  • RDS PostgreSQL数据库实例为高可用系列。

  • 当前仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、华北3(张家口)、新加坡、马来西亚(吉隆坡)和印度尼西亚(雅加达)地域的RDS PostgreSQL数据库实例。

  • 如果是RAM用户,使用搜索功能时,需要为RAM用户授予AliyunRDSReadOnlyWithSQLLogArchiveAccess权限。如何为RAM用户授权,请参见通过RAM对RDS进行权限管理

    说明

    您也可以通过自定义权限策略授予RAM用户使用搜索(包含导出)功能的权限,详情请参见通过自定义权限策略授权RAM用户使用SQL洞察和审计的搜索(包含导出)功能

计费

请参见产品计费

说明

开通SQL洞察和审计之后,原SQL审计(数据库审计)将停止计费,新版本的SQL洞察和审计将按照DAS企业版进行收费。

功能介绍

  • 搜索(审计):查询并导出SQL语句执行历史及其对应的各种信息,如数据库、状态、执行时间等。

  • SQL洞察:对SQL进行健康情况诊断、性能问题排查、业务流量分析等。

注意事项

如果实例启用了PgBouncer连接池,通过PgBouncer执行的SQL不会被SQL洞察和审计记录。

开启SQL洞察和审计

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,选择自治服务 > SQL洞察和审计

  3. 在右侧页面中,如果界面提示您未开启该功能,单击一键开启,并在弹出的窗口中开启DAS企业版。

    说明

    当页面显示搜索(审计)SQL洞察页签时,表示您已经开启了SQL洞察和审计功能。

使用搜索功能

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,选择自治服务 > SQL洞察和审计

  3. 在右侧页面中单击搜索页签,设置查询条件,即可查询相关信息。关于搜索的更多信息,请参见搜索(审计)

    您可单击导出,勾选需要的导出字段来导出SQL记录。通过设置导出时间范围可以导出更大时间范围的SQL记录。

使用SQL洞察功能

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,选择自治服务 > SQL洞察和审计

  3. 在右侧页面中单击SQL洞察页签即可查看相关信息。关于SQL洞察的更多信息,请参见SQL洞察

关闭SQL洞察和审计

警告

SQL洞察和审计功能关闭后,SQL洞察和审计的日志会被清空。建议您将SQL洞察和审计的日志导出并保存至本地后,再关闭SQL洞察和审计功能。当重新开启SQL洞察和审计功能时,SQL洞察和审计的日志将从本次开启SQL洞察和审计的时间开始记录。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中,选择自治服务 > SQL洞察和审计

  3. 搜索页签的日志列表区域,单击导出

  4. 在弹出的对话框中,选择导出字段和导出时间范围,单击确认

  5. 导出完成后,下载已导出的文件并妥善保存。

  6. 服务设置页,关闭SQL洞察和审计的开关,勾选关闭SQL洞察服务后所有的相关数据将被清空后,单击关闭服务

    说明

    如果您在日志服务的CloudLens for RDS开启了RDS PostgreSQL实例的审计日志采集功能,系统会自动开启对应RDS PostgreSQL实例的SQL洞察和审计功能,因此您还需要关闭该数据库实例的审计日志采集功能。详情请参见CloudLens for RDS

常见问题

Q:为什么无法查询到RDS PostgreSQL实例中执行失败的SQL?

A:对于RDS PostgreSQL实例,执行失败的SQL会被记录在实例的错误日志中,而不会被记录在审计日志中。查询实例的错误日志请参见查看日志

Q:为什么日志列表中展示的数据库名称和SQL语句中的不一致?

A:日志列表中所展示的数据库名称是从会话中获取的,而SQL语句中的数据库名称则由用户指定,取决于用户的输入或查询的设计,例如跨数据库查询、动态SQL等场景。两者之间可能存在不一致的情况。