有没有办法在 Azure SQL 中查看特定用户运行的语句列表?我有一个用户抱怨查询性能。查询是由工具生成的,因此他不知道实际的查询文本。
如果我在 Query Performance Insight 下查看该数据库的 Azure 门户,我会得到前 5 个性能查询。但他的查询并没有出现在那里。如果我能以某种方式从该用户那里获得最新的查询,那将非常有用。解决方案是在 Azure 门户 Web 界面中还是作为我针对数据库中的一些管理视图运行的查询都没有关系。
有没有办法在 Azure SQL 中查看特定用户运行的语句列表?我有一个用户抱怨查询性能。查询是由工具生成的,因此他不知道实际的查询文本。
如果我在 Query Performance Insight 下查看该数据库的 Azure 门户,我会得到前 5 个性能查询。但他的查询并没有出现在那里。如果我能以某种方式从该用户那里获得最新的查询,那将非常有用。解决方案是在 Azure 门户 Web 界面中还是作为我针对数据库中的一些管理视图运行的查询都没有关系。
您需要启用SQL 审计或使用扩展事件收集这些查询,如此处所述(每个查询的用户和会话信息)。
Azure SQL DB 审核使您能够针对您的要求设置精细的审核策略。您可以使用 PowerShell cmdlet Set-AzureRmSqlDatabaseAuditing创建这样的细粒度策略。-AuditAction 参数使您能够指定要审核的登录操作。例如,使用以下参数值将审核主体 'yourlogin' 对表 'myTable' 的任何 SELECT 语句:
-AuditAction 'SELECT ON dbo.myTable BY yourlogin'
我还建议使用查询存储。
更改设置以执行以下操作
然后查看查询存储中的报告。确保也更改存储,以免耗尽。