2012-12-09 75 views
1

每天,我的一些數據庫行會自動刪除。爲什麼數據庫行會自動刪除sql 2008

即使日誌文件正在被刪除,所以我無法檢查誰刪除了這些文件。

我不明白該怎麼做。

+1

請提供更多詳情。關於日誌文件被刪除的一點聽起來像惡意活動(如果正確),但不知道更多關於難以猜測的情況,如果你被黑客攻擊或者只是有一個寫得不好的刪除查詢或計劃任務。 –

+0

是的,需要更多細節。這是在生產還是在測試服務器上?很多人/用戶/應用程序是否有權訪問它? –

回答

2

如果SQL服務器是預生產的,您可以將目標表的所有刪除權限拔出並等待查看誰投訴。如果在這張桌子上不允許刪除,即使是在製作過程中,那麼限制該功能向前移動也是一個好主意。

除此之外,嘗試向表中添加刪除觸發器以執行審計。您可以獲取源IP地址,登錄用戶信息等。如果需要,您甚至可以回滾刪除。

這是一篇關於使用觸發器進行審計的好文章。

http://weblogs.asp.net/jgalloway/archive/2008/01/27/adding-simple-trigger-based-auditing-to-your-sql-server-database.aspx

編輯:

如果你想停止所有刪除桌子上,你可以使用下面的觸發器。

CREATE TRIGGER dbo.MyTable_Delete_Instead_Of_Trigger 
ON dbo.MyTable 
INSTEAD OF DELETE 
AS 
BEGIN 

    raiserror('Deletes are not allowed.', 16, 1) 
END 
+0

克里斯,謝謝你的快速回復。你能告訴我如何刪除目標表的所有權限嗎?還有如何添加刪除觸發器。我是小新手。請幫幫我。我一直在使用恢復軟件取回已刪除的記錄,但它變成了一個真正的混亂。 – georgesmith

+0

@georgesmith - 讀取事務日誌的恢復軟件?什麼日誌被刪除? –

+0

@georgesmith - 你工作的這家公司,他們有DBA還是DBA? –

1

運行SQL事件探查器對DB捕捉所有RPC完成和SQL BatchCompleted事件和審查,發現無論是在執行刪除操作。