簡體   English   中英

如何查找誰最后修改了SQL Server中的表?

[英]How to find who last modified the table in SQL server?

我試圖找到最后修改SQL Server中特定表的用戶。 sys.dm_db_index_usage_stats提供有關表的上次修改日期的信息,但我正在尋找上次修改者。 有沒有辦法找出哪個登錄最后修改的特定表?

我認為您必須在SQL Server中啟用默認情況下未啟用的內置審核,或者編寫您自己的審核發生情況的方法。

如果這是針對已經發生的事情,那么我認為您可能不走運。

試試看,看看是否有幫助:

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

SELECT gt.HostName, 
       gt.ApplicationName, 
       gt.NTUserName, 
       gt.NTDomainName, 
       gt.LoginName, 
       gt.SPID, 
       gt.EventClass, 
       te.Name AS EventName,
       gt.EventSubClass,      
       gt.TEXTData, 
       gt.StartTime, 
       gt.EndTime, 
       gt.ObjectName, 
       gt.DatabaseName, 
       gt.FileName, 
       gt.IsSystem
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in (164) 
ORDER BY StartTime DESC; 

謝謝大家調查我的問題並提供建議。 我在觸發器中使用了以下腳本來獲取last_modified_by。

   DECLARE @login_name NVARCHAR(200)
   SELECT  @login_name = loginame
   FROM  sys.sysprocesses
   WHERE   spid = @@SPID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM