如何找到在 SQL 服务器中提交的事务的机器 IP,我们有用户名和事务 ID
How to find Machine IP of a transaction committed in SQL SERVER, we have user Name and Transaction ID
如何找到在SQL服务器中提交交易的用户的机器IP/主机名,我们有 UserName ,TransactionID 和 TransactionTime 。
是否可以使用 T-SQL 查询找到它?
提交的操作是:截断Table
这个可能会帮到你。我不是自己写的,但我们有时会在我的组织中使用它。
SELECT Sdest.Databasename,
Sdes.Session_Id,
Sdes.Host_Name,
Sdes.Program_Name,
Sdes.Client_Interface_Name,
Sdes.Login_Name,
Sdes.Login_Time,
Sdes.Nt_Domain,
Sdes.Nt_User_Name,
Sdec.Client_Net_Address,
Sdec.Local_Net_Address,
Sdest.Objname,
Sdest.Query
FROM Sys.Dm_Exec_Sessions AS Sdes
INNER JOIN Sys.Dm_Exec_Connections AS Sdec ON Sdec.Session_Id = Sdes.Session_Id
CROSS APPLY
(
SELECT DB_NAME(Dbid) AS Databasename,
OBJECT_ID(Objectid) AS Objname,
ISNULL(
(
SELECT Text AS [Processing-instruction(definition)]
FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle) FOR Xml PATH(''), TYPE
), '') AS Query
FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle)
) AS Sdest
WHERE Sdes.Session_Id <> @@Spid
ORDER BY Sdec.Session_Id;
如何找到在SQL服务器中提交交易的用户的机器IP/主机名,我们有 UserName ,TransactionID 和 TransactionTime 。 是否可以使用 T-SQL 查询找到它?
提交的操作是:截断Table
这个可能会帮到你。我不是自己写的,但我们有时会在我的组织中使用它。
SELECT Sdest.Databasename,
Sdes.Session_Id,
Sdes.Host_Name,
Sdes.Program_Name,
Sdes.Client_Interface_Name,
Sdes.Login_Name,
Sdes.Login_Time,
Sdes.Nt_Domain,
Sdes.Nt_User_Name,
Sdec.Client_Net_Address,
Sdec.Local_Net_Address,
Sdest.Objname,
Sdest.Query
FROM Sys.Dm_Exec_Sessions AS Sdes
INNER JOIN Sys.Dm_Exec_Connections AS Sdec ON Sdec.Session_Id = Sdes.Session_Id
CROSS APPLY
(
SELECT DB_NAME(Dbid) AS Databasename,
OBJECT_ID(Objectid) AS Objname,
ISNULL(
(
SELECT Text AS [Processing-instruction(definition)]
FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle) FOR Xml PATH(''), TYPE
), '') AS Query
FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle)
) AS Sdest
WHERE Sdes.Session_Id <> @@Spid
ORDER BY Sdec.Session_Id;