2013-01-15 22 views
3

我有這個問題,我需要審計跟蹤(通常存儲在數據庫中),即使對於DBA和系統管理員也是不可編輯和可刪除的。如何設計我的應用程序,以便不能編輯或刪除審覈跟蹤?

1種方法是應用加密和校驗和,但這隻允許檢測更改或防止窺探。它並不妨礙DBA只刪除一行。

對此事的任何討論表示讚賞。

+1

如果你不能相信你的數據庫管理員和系統管理員,你有一個*人事問題,不能通過編程方式解決。 –

回答

2

如果您希望審計線索即使是DBA和系統管理員也不可編輯,您需要將它們存儲在他們控制的設備之外。

但是,這會導致同樣的問題 - 該系統的數據庫管理員和系統管理員將能夠編輯它們。

最好的辦法是建立一個系統,將這些存儲在兩個完全不同的位置,不共享管理員並定期進行比較檢查。

或者,當特定用戶或特定客戶端創建更新/刪除時,您可以觸發更新/刪除。這些觸發器可以編程爲發送電子郵件或文本消息,如果這樣的非應用程序更新或刪除。

它應該是已知的 - admin/dba社區中衆所周知的這樣的觸發器存在。您無法阻止更新或刪除,但肯定會讓他們遠離該表。

但是仍然有一個問題,那就是刪除或修改觸發代碼的能力。

+0

除上述之外,您可以對審計線進行哈希處理,並擁有一個用於比較兩個哈希的審計檢查函數 - 您還可以將哈希從位置A發佈到位置B,反之亦然。這會給你一個額外的檢查層。 –

1

存在着「一次性寫入」檔案存儲系統,如從Venti計劃9.這並不阻止任何人與物理訪問採取磁鐵到硬盤或類似的過程)

足夠精明的系統管理員可以創建一個稍微修改後的數據版本,並將引用替換爲通風分數,儘管......同樣精明的系統管理員仍然可以恢復原始數據。

無論如何,我認爲你可以從學習追加存儲系統學到很多東西。與數據庫相比,它們對於存儲審計跟蹤有很大意義。

0

存在充當嗅探器的設備,並且能夠記錄在數據庫上執行的每一條命令。 IBM Guardium就是一個例子。