Sie suchen nach zwei Informationen:
- Die Befehle, die in einer Datenbank ausgeführt werden. und
- Wer führt diese Befehle aus?
Ich glaube, diese Abfrage gibt die Informationen zurück, die Sie benötigen, oder liefert Ihnen zumindest die Grundlage, die Ihren Anforderungen entspricht.
Ich habe diesen Code anhand von Beispielen angepasst, die ich in Books Online gefunden habe:
DECLARE @dbName varchar(100) = 'AdventureWorks2012' --or the name of the db
SELECT
z.DatabaseName,
z.is_user_process,
z.session_id as SPID,
z.login_name,
z.nt_domain,
z.nt_user_name,
z.original_login_name,
y.cmd,
y.status
FROM
(SELECT
db_name(s.database_id) as DatabaseName,
s.is_user_process,
c.session_id,
s.login_name,
s.nt_domain,
s.nt_user_name,
s.original_login_name,
s.host_name,
s.program_name,
s.client_interface_name,
c.connect_time,
s.login_time
FROM
sys.dm_exec_connections AS c
JOIN
sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE
db_name(s.database_id) = @dbName --'AdventureWorks2012'
) AS z
JOIN
(SELECT
cmd,
[status],
spid,
db_name(dbid) AS DatabaseName
FROM
sysprocesses
WHERE
db_name(dbid) = @dbName --'Adventureworks2012'
) AS y
ON
z.DatabaseName = y.DatabaseName AND
z.session_id = y.spid