2016-07-26 5 views
0

Gibt es eine Möglichkeit im SQL-Server zu sehen, welche Abfragen Benutzer ausführen? Ich habe Informationen darüber gefunden, wie Abfragen ausgeführt werden, aber ich kann nicht sehen, welche Benutzer-ID oder welcher Benutzername ausgeführt wird. Ich bin neu zu laufenden Abfragen gegen [sys.] Und jede Hilfe würde sehr geschätzt werden.SQL-Abfragen, die mit Benutzer-ID/Login ausgeführt werden

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 

aber es zeigt mir nicht die Login-ID. Manchmal möchte ich identifizieren, wer was ausführt.

EDIT: Quelle für obige Abfrage http://www.sqlmatters.com/Articles/See%20what%20queries%20are%20currently%20running.aspx

+1

[SQL Profiler] (https://msdn.microsoft.com/en-us/library/ms173799 (v = sql.105) .aspx) zeigt Ihnen, welche Abfragen ausgeführt werden. –

Antwort

0

SQL Profiler hat NTUserName und LoginName, die Ihnen helfen können. Bevor Sie eine neue Ablaufverfolgung ausführen, stellen Sie sicher, dass Sie "Alle Spalten anzeigen" auf der Registerkarte "Ereignisauswahl" anzeigen. Sie können auch "Spaltenfilter" verwenden, um Ihre Ergebnisse basierend auf Abfragedauer, Anmeldenamen usw. zu filtern.

Verwandte Themen