SQL 查询 运行 用户 ID/Login

SQL Queries running with User ID/Login

SQL 服务器有没有办法查看用户 运行 的查询?我找到了有关如何查看 运行 查询的信息,但我无法查看 运行 是什么用户 ID 或登录信息。我是 运行 针对 [sys.] 查询的新手,非常感谢任何帮助。

    SELECT
          r.start_time [Start Time]
        , session_ID [SPID]
        , DB_NAME(database_id) [Database]
        , SUBSTRING(t.text,(r.statement_start_offset/2)+1, 
                     CASE WHEN statement_end_offset=-1 OR statement_end_offset=0 
                     THEN (DATALENGTH(t.Text)-r.statement_start_offset/2)+1 
                     ELSE (r.statement_end_offset-r.statement_start_offset)/2+1 
                     END) [Executing SQL]
        , Status
        , command
        , wait_type
        , wait_time
        , wait_resource
        , last_wait_type
FROM
          sys.dm_exec_requests r
          OUTER APPLY
                    sys.dm_exec_sql_text(sql_handle) t
WHERE
          session_id > 50 --
ORDER BY
          r.start_time

但它没有显示登录 ID。 有时我想确定谁是 运行 什么。

编辑:上述查询的来源http://www.sqlmatters.com/Articles/See%20what%20queries%20are%20currently%20running.aspx

使用 SQL Server Profiler(SSMS 中的工具 > SQL Server Profiler)并创建跟踪。这里还有一些其他相关的 methods/details 描述:https://dba.stackexchange.com/a/49448/84000

SQL Profiler 的 NTUserName 和 LoginName 可能对您有所帮助。在 运行 新跟踪之前,请确保您在 'Events Selection' 选项卡中 'Show all columns'。您还可以使用 'Column Filters' 根据查询持续时间、登录名等过滤结果。