查看Azure SQL中由用户运行的sql语句的历史记录

问题描述

是否可以查看Azure sql特定用户运行的语句列表?我有一个抱怨查询性能用户查询是由工具生成的,因此他不知道实际的查询文本。

如果我在Query Performance Insight下查看该数据库上的Azure Portal,则会获得前5个性能查询。但是他的查询没有出现在这里。如果我能以某种方式从该用户那里获取最新查询,那将非常有用。解决方案是在Azure Portal Web界面中还是作为查询针对数据库中的某些管理员视图运行都没有关系。

解决方法

您需要启用SQL Auditing或使用扩展事件收集这些查询,如here所述(每个查询的用户和会话信息)。

Azure SQL DB审核使您可以针对像您这样的需求设置精细的审核策略。您可以使用PowerShell cmdlet Set-AzureRmSqlDatabaseAuditing创建这样的精细策略。 -AuditAction参数使您可以指定要审核的登录操作。例如,使用以下参数值将通过主体“ yourlogin”审核表“ myTable”上的所有SELECT语句:

-AuditAction'通过yourlogin选择dbo.myTable。

,

我还建议使用查询存储。

更改设置以执行以下操作

  • 清除查询存储区
  • 更改查询捕获以捕获所有查询

然后在查询存储中查看报告。确保还更改存储,以免耗尽。