1. 程式人生 > >Oracle審計功能

Oracle審計功能

訪問 策略 賦值 設置 執行 數據字典 得到 結構 寫到

一、審計分類:
  oracle中審計總體上可分為“標準審計”和“細粒度審計”後者也稱為“基於政策的審計”,在Oracle10G之後功能得到很大增強。其中標準審計可分為用戶級審計和系統級審計。用戶級審計是任何Oracle用戶可設置的審計,主要是用戶針對自己創建的數據庫表或視圖進行審計,記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作。系統級審計只能由DBA設置,用以監測成功或失敗的登錄要求、監測GRANT和REVOKE操作以及其他數據庫級權限下的操作。


二、標準審計
分類:
在ORACLE中分別支持以下三種標準審計類型:
  語句審計,對某種類型的SQL語句審計,不指定結構或對象。


   特權審計,對執行相應動作的系統特權的使用審計。
  對象審計,對一特殊模式對象上的指定語句的審計。
這三種標準審計類型分別對如下3方面進行審計:
  審計語句的成功執行、不成功執行,或者其兩者。
  對每一用戶會話審計語句執行一次或者對語句每次執行審計一次。
   對全部用戶或指定用戶的活動的審計。

當數據庫的審計功能打開後,在語句執行階段產生審計記錄。審計記錄包含有審計的操作、用戶執行的操作、操作的日期和時間等信息。審計記錄可存在數據字典表(稱為審計記錄)或操作系統審計記錄中。數據庫審計記錄是在SYS模式的AUD$表中。


三、細粒度審計:
細粒度審計 (FGA)(通過 Oracle9i 引入)可以理解為“基於政策的審計”。與標準的審計功能相反,FGA 可用於指定生成審計記錄必需的條件:FGA 政策通過使用“dbms_fga”程序包以編程方式綁定到對象(表、視圖)。類似於用於通過 VPD ("dbms_rls") 進行訪問控制的程序包,它允許您創建任何需要的條件,例如:僅當以下條件為真時:

在早上九點到下午六點之間或在星期六和星期日對某個表進行了訪問。
使用了公司網絡外部的某個 IP 地址。
選定或更新了特定列。
使用了該列的特定值。

這將創建更有意義的審計線索,因為無需記錄每一個人對表的每一次訪問。從 Oracle 數據庫 10g 開始,FGA 支持在一個策略中使用“選擇”、“插入”、“更新”和“刪除”語句的任意組合。事實上,綁定到表的 FGA 政策簡化了審計政策的管理,因為這將只需在數據庫中對其更改一次,不用在每個應用程序中一次次進行。此外。無論用戶通過何種方式連接至數據庫(通過應用程序、Web 接口或通過 SQL*Plus),其操作都會記錄下來。



四、細粒度審計(FGA)審計和標準審計的差異 :
1. 標準審計必須用參數 AUDIT_TRAIL 在數據庫級啟用。這個參數不是動態的;你必須重啟數據庫來使其生效。相比而言,FGA 不需要任何參數修改。
2. 一旦被設置在一個對象上,標準審計將保持在那裏。要解除它,必須用 NOAUDIT 命令刪除審計選項。這可能很不方便,因為在一個表上丟棄審計選項也將丟棄元數據信息。然而,FGA 可以臨時禁用和啟用,不丟失任何元數據信息。
3. FGA 只能夠處理四種類型的語句:SELECT、INSERT、UPDATE 和 DELETE。相比而言,常規審計可以處理其它許多語句和權限,甚至會話連接和斷開。
4. 標準審計每次會話只創建一條記錄(按會話)或每次訪問對象創建一條記錄(按訪問)這種占用資源很少的方式對於控制審計線索表中的空間非常重要。FGA 並不是同樣節省資源;它每次訪問運行一次 — 使得線索更大。
5. 通過記錄線索,標準審計可以用來檢測任何中斷企圖,如果企圖沒有成功,則將產生錯誤代碼。而 FGA 不能。
6. 標準審計可以寫數據庫表或 OS 文件。後者在審計員(不是數據庫管理員)能夠訪問線索時非常有用。在 Windows 下,非數據庫審計線索記錄在事件日誌中,並且可以用不同的方式對其進行訪問。這個選項保護了審計線索的完整性。然而,FGA 日誌僅寫到數據庫表 FGA_LOG$ 中。可以在 FGA 中創建用戶自定義的審計處理程序來寫 OS 文件,但它們的完整性不能保證。
7. 標準審計可以設置用於默認對象。當表是在運行期創建時,這個功能變得極為有用:默認的審計選項允許沒有數據庫管理員幹預的審計。這在 FGA 中是不可能的,用戶必須在一個現有的表上創建策略,上述的情況只能在表已創建之後才可能發生。
8. 在 FGA 中,審計更加靈活 — 僅當訪問某些列,當某個特定的條件為真時等等。這種多功能性在您需要控制線索的增長時非常方便。
9. 在 FGA 中,SQL 賦值變量默認被捕獲。在標準審計中,必須把初始化參數 audit_trail設為 db_extended,以啟用這一功能。
10. 權限差異:標準審計需要審計系統或語句權限;FGA 只需要 dbms_fga 程序包上的運行權限。


Oracle審計功能