查看 Azure SQL 中用户 sql 语句 运行 的历史记录
See history of sql statements run by user in Azure SQL
有没有办法在 Azure SQL 中查看特定用户的语句列表 运行?我有一个抱怨查询性能的用户。查询是由工具生成的,因此他不知道实际的查询文本。
如果我在查询性能洞察下查看该数据库的 Azure 门户,我会得到前 5 个性能查询。但他的查询并没有出现在那里。如果我能以某种方式从该用户那里获得最新的查询,那将非常有用。解决方案是在 Azure Portal Web 界面中还是作为查询我 运行 针对数据库中的某些管理视图都没有关系。
您需要启用SQL Auditing or collect those queries with Extended Events as explained here(每个查询的用户和会话信息)。
Azure SQL 数据库审计使您能够针对像您这样的要求设置精细的审计策略。您可以使用 PowerShell cmdlet Set-AzureRmSqlDatabaseAuditing 来创建这样的精细策略。 -AuditAction 参数使您能够指定要审核的登录操作。例如,使用以下参数值将审核委托人 'yourlogin' 对 table 'myTable' 的任何 SELECT 语句:
-AuditAction 'SELECT ON dbo.myTable BY yourlogin'
我还建议使用查询存储。
更改设置以执行以下操作
- 清除查询存储
- 更改查询捕获以捕获所有查询
然后查看查询存储中的报告。确保也更改存储,这样它就不会 运行 出来。
有没有办法在 Azure SQL 中查看特定用户的语句列表 运行?我有一个抱怨查询性能的用户。查询是由工具生成的,因此他不知道实际的查询文本。
如果我在查询性能洞察下查看该数据库的 Azure 门户,我会得到前 5 个性能查询。但他的查询并没有出现在那里。如果我能以某种方式从该用户那里获得最新的查询,那将非常有用。解决方案是在 Azure Portal Web 界面中还是作为查询我 运行 针对数据库中的某些管理视图都没有关系。
您需要启用SQL Auditing or collect those queries with Extended Events as explained here(每个查询的用户和会话信息)。
Azure SQL 数据库审计使您能够针对像您这样的要求设置精细的审计策略。您可以使用 PowerShell cmdlet Set-AzureRmSqlDatabaseAuditing 来创建这样的精细策略。 -AuditAction 参数使您能够指定要审核的登录操作。例如,使用以下参数值将审核委托人 'yourlogin' 对 table 'myTable' 的任何 SELECT 语句:
-AuditAction 'SELECT ON dbo.myTable BY yourlogin'
我还建议使用查询存储。
更改设置以执行以下操作
- 清除查询存储
- 更改查询捕获以捕获所有查询
然后查看查询存储中的报告。确保也更改存储,这样它就不会 运行 出来。