2013-07-17 31 views
1

我需要確保oracle用戶對我寫的外部程序執行insert/updates/deletes操作。針對dml語句的oracle模式審計

我搜索了一下,找到了我需要的東西。我知道你可以使用自己的書面數據庫觸發器。 我現在有兩個來自oracle的主要系統(至少這是我發現的)。 您可以使用細粒度的審計。你可以使用審計跟蹤。

我認爲在我的情況下審計線索接近,但只是不是我正在尋找。因爲我現在需要從哪個程序到DB的連接。例如,我需要註冊所有正在執行插入/更新/刪除操作的連接,這些連接執行的語句來自SQL開發人員或蟾蜍。但是所有其他連接都可能未經審覈而通過。

在日常的基礎上,我有很多的連接,所以註冊一切都是太多的過載。

我希望你們中的一位對如何設置這個有一個好主意。

問候

+0

您的標題和標籤討論了審覈更改。但是,然後你的描述談到「保護」,似乎暗示你想阻止DML,除非它來自應用程序。目標是允許DML並只審覈來自應用程序之外的DML嗎?或者是阻止DML運行的目標?解決方案需要有多安全?由於應用程序名稱必須來自客戶端機器上運行的應用程序,因此勝任的用戶可以通過操縱他們的機器輕鬆破解這些數據。 –

+0

它不一定要安全。用戶可能會做一些插入/更新和刪除,但我們只需要跟蹤它們。我們過去曾經有過某些事情出錯,有人在做更新,並在他的where子句中忘記了一些事情。如果我們能夠跟蹤這些變化,我們可以看到哪些記錄可能已被感染。所以這是純粹的審計,沒有安全,這就是爲什麼我只提到審計標記 – nightfox79

+0

好。目標是知道什麼SQL語句運行?或者更新了哪些行?假設行被其他進程修改,並且在用戶操作和發現的問題之間經過了一段時間,知道SQL語句可能不會告訴您哪些行在執行時符合語句標準。用戶犯錯和被識別的問題之間有什麼差距?你可能使用閃回技術而不是審計? –

回答

2

您可以使用Oracle的產品:甲骨文的Audit Vault和數據庫防火牆。因爲你也想知道連接來自哪個程序,所以你需要數據庫防火牆。它可以監視通過數據庫的所有流量,指定IP地址和從中開始連接的客戶端。您還可以指定是否要審計DML或DDL或其他語句。數據本地存儲在產品的數據庫中,而不是存儲在安全目標(數據庫)中。只需看看它,它就是您所需要的:http://www.oracle.com/technetwork/products/audit-vault-and-database-firewall/overview/overview-1877404.html

+0

非常感謝,這確實正是我需要的。 – nightfox79

+0

很高興幫助:) – Hari