Azure Data Studio Profiler不显示DBName和LoginName

时间:2019-09-19 11:55:16

标签: azure azure-sql-database azure-data-studio

我正在使用Azure Data Studio-Profiler来获取组织中用户触发的所有事件,但是看不到这些字段填充为空的登录名和数据库名。 有人可以帮我运行任何设置或任何查询,以便我可以获取这些设置或任何其他应用程序,以获取组织中用户运行的所有事件。

1 个答案:

答案 0 :(得分:0)

根据我的研究,此扩展实际上是针对SQL Server的,它使用Xevent收集查询执行详细信息。 SQL Azure与SQL Server不同,我们只能收集数据库级别的Xevent,因此该工具中显示的某些字段实际上在收集的XEvent文件中不存在。因此,如果要查看用于执行查询的用户名,我们可以在SSMS中使用以下查询来检查会话[您的会话naem]的Xevent日志并手动对其进行查看。

脚本:

DECLARE @x XML;
SELECT @x = CAST(st.target_data AS XML)
FROM sys.dm_xe_database_sessions AS se INNER JOIN sys.dm_xe_database_session_targets AS st ON se.address like st.event_session_address
where se.name = 'ADS_Standard_Azure'
select @x

此外请注意,由于Xevent会话以有限的大小保存到内存中,因此我们可能会丢失较旧的事件,并且在数据库重新启动后也会丢失历史记录。因此,如果要跟踪每个查询执行的登录信息,实际上我们建议使用Azure SQL数据库的审核功能。有关更多详细信息,请参阅https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auditing