2014-09-19 76 views
0

SQL Server-多用戶SQL Server - Retrive刪除數據庫事務日誌

我想查看已刪除數據庫的日誌和已執行「刪除」事務的用戶名。

+0

會[如何查看事務日誌?](http://stackoverflow.com/q/3462799/2545927)有什麼幫助嗎? – kkuilla 2014-09-19 10:33:10

+0

SQL Exchange上提出了同樣的問題: http://dba.stackexchange.com/questions/4269/how-to-find-out-who-deleted-some-data-sql-server – Mattgb 2014-09-19 11:01:18

回答

2

默認跟蹤將包含數據庫創建/更改/刪除事件。如果操作仍在文件中,下面的查詢將返回所需的信息。

SELECT 
    te.name AS EventName 
    ,tt.StartTime 
    ,tt.HostName 
    ,tt.LoginName 
    ,tt.ApplicationName 
FROM sys.traces AS t 
CROSS APPLY fn_trace_gettable(
    REVERSE(N'crt.gol' + SUBSTRING(REVERSE(t.path), CHARINDEX(N'\', REVERSE(t.path)), 128)), default) AS tt 
JOIN sys.trace_events AS te ON 
    te.trace_event_id = tt.EventClass 
JOIN sys.trace_subclass_values AS tesv ON 
    tesv.trace_event_id = tt.EventClass 
    AND tesv.subclass_value = tt.EventSubClass 
WHERE 
    t.is_default = 1 --default trace 
    AND tt.ObjectType = 16964; --database type