2009-02-19 66 views
1

這可能看起來像一個愚蠢的問題,但我現在處於一個頭 - >牆的情況。SQL Server 2005:刪除審計隨機記錄

我在一個龐大的ERP應用程序中工作,其中SQL Server 2005數據庫由多個不同的應用程序更新。我試圖找出特定表中刪除的來源。

我試過使用Profiler,但是我無法過濾足夠的事件類型以便能夠識別錯誤的SP,因爲從各個方面來看,數據庫的訪問次數如此之多。此外,Profiler似乎更多地指向查找DDL更改或對象刪除類型操作。

我只是想回答這個問題:什麼存儲過程。或SQL查詢導致記錄從表X中刪除?

我應該使用什麼工具?我希望避免像Trigger based Auditing。或者Profiler是這種調查的最佳工具?還是第三方工具是唯一的度假村?

請提供任何有用的鏈接,因爲我對這個主題相對不熟悉。

回答

1

尋找具有探查的罪魁禍首也能像在大海撈針,尤其是在一個繁忙的系統;如果使用edosoft建議的過濾器無法找到它,請嘗試通過消除write = 0的命令,按應用程序名稱篩選,通過不像'%select%'的textdata過濾來最小化噪聲;你應該能夠把它縮小。

如果您真的很絕望,您可以拒絕對桌面上所有用戶的刪除權限,並等待手機響鈴。

您也可以在表上將偶然性SELECT COUNT(*)運行到帶有時間戳的工作表中,並嘗試將記錄計數的任何下降與其他活動相關聯。

1

您可以使用SQL Profiler進行此操作,但您需要過濾結果。要監視DELETE語句,請選擇「RPC:Starting」和「SP:Starting」事件,並在TextData列上應用過濾器:「TextData LIKE'%DELETE%FROM%'」。

-Edoode