2009-05-22 61 views
6

在我的SQL Server 2005數據庫中的一些表中,我的所有數據都被擦除了。無論如何要在SQL Server中記錄過去一天中運行的所有語句嗎?我試圖找出是否有人在意外事故中發生了這種情況,我的Web應用程序中存在漏洞,或者實際的數據庫已被泄露。我的數據庫安全性是如何失敗的?

+6

沒有SQL注入問題,我希望? – 2009-05-22 15:00:36

回答

2

看到下面有幾個程序可以讓你閱讀日誌。

http://sqlserver2000.databases.aspfaq.com/how-do-i-recover-data-from-sql-server-s-log-files.html

的一個從Red Gate is called SQL Rescue,看起來還不錯。

+0

實際上,您可以拆開事務日誌並確定數據庫上運行的是什麼。然而,這些都是專有的,未公開的文件格式 - 尋找可以做到這一點的工具,我不幸沒有推薦。 – 2009-05-22 15:09:52

+0

@Redbeard:我錯了,並更新了我的答案。謝謝! – NotMe 2009-05-22 15:11:16

2

你可以嘗試日誌救援工具像Log Rescue

我還要理清一些自己的審計。

登錄救援不支持SQL 2005,所以你也可以嘗試Apex SQL Log

+0

Log Rescue的頁面聲明它不支持SQL 2005(這是OP使用的) – 2009-05-22 15:10:21

1

有,你可以買,可以備份事務日誌轉換成已運行的實際語句的應用程序。您可能能夠找到其中一些的試用版,但不幸的是,我無法推薦任何特定的一個。

1

還有一件事要記住:如果黑客獲得了足夠的訪問權限來清理某些表,那麼他們很有可能獲得足夠的訪問權限以便與日誌文件一起使用。

3

您也可以嘗試運行命令DBCC LOG(數據庫,3)。它將輸出事務日誌中的數據。

1

在SQL Server中創建事務日誌備份,下載SQL Server的試用版TOAD,您可以導入您的事務日誌備份。

如果你想要的話,你也可以創建DELETED記錄的INSERT腳本。但我不知道TOAD試用版是否有任何限制。

相關問題