oracle標準審計

安佰勝發表於2010-12-28

標準審計:

2.1 分類:

ORACLE中分別支援以下三種標準審計型別:

語句審計,對某種型別的SQL語句審計,不指定結構或物件。

特權審計,對執行相應動作的系統特權的使用審計。

物件審計,對一特殊模式物件上的指定語句的審計。

這三種標準審計型別分別對如下3方面進行審計:

 

審計語句的成功執行、不成功執行,或者其兩者。

對每一使用者會話審計語句執行一次或者對語句每次執行審計一次。

對全部使用者或指定使用者的活動的審計。

 

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

 

2.2設定ORACLE標準審計:

下列步驟可以設定ORACLE的標準審計功能:

 

1. 修改引數

修改靜態引數AUDIT_TRAIL,並且重啟資料庫。AUDIT_TRAIL的取值如下:

 

DB/TRUE:啟動審計功能,並且把審計結果存放在資料庫的 SYS.AUD$ 表中

OS啟動審計功能,並把審計結果存放在作業系統的審計檔案中以trace檔案格式存放。  

XML:啟動審計功能,並把審計結果放在作業系統的審計檔案中以xml檔案格式存放。

DB_EXTENDED具有DB/TRUE的功能,另外填寫AUD$SQLBINDSQLTEXT欄位(10g新增)

NONE/FALSE關閉審計功能 

 

如果設定 AUDIT_TRAIL = OS,審計資訊會記錄在作業系統審計檔案中,檔案會自動存放在AUDIT_FILE_DEST所指定的目錄下,並且檔名包含程式的PID

 

   比如: 

    AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit  

    $ ls -l $ORACLE_HOME/rdbms/audit  

   -rw-rw----  1 ora92    dba        881 Mar 17 09:57 ora_13264.aud

 

2.確認審計相關的表是否已經安裝

 

   SQLPLUS> connect / AS SYSDBA 

   SQLPLUS> select * from sys.aud$;  -- 沒有記錄返回  

   SQLPLUS> select * from dba_audit_trail; -- 沒有記錄返回 

 

  如果做上述查詢的時候發現表不存在,說明審計相關的表還沒有安裝,需要安裝。

 

   SQLPLUS> connect / as sysdba 

   SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql 

 

  審計表安裝在SYSTEM表空間。所以要確保SYSTEM表空間又足夠的空間存放審計資訊。

 

.3. 設定所需要的審計資訊

 

 下面是一個例子

 

SQL> show parameter audit;

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- --------------------------

audit_sys_operations                 boolean     TRUE

audit_trail                          string      DB_EXTENDED

SQL> audit drop any table by scott by session whenever successful;

 

Audit succeeded.

 

 

其中:

by access: 每一個被審計的操作都會生成一條audit trail
    by session
,一個會話裡面同型別的操作只會生成一條audit trail

兩者使用時也是有限制的,oracle官方的解釋如下:

However, several audit options can be set only BY ACCESS:

All statement audit options that audit DDL statements

All privilege audit options that audit DDL statements

10g中雖然仍然支援ddlby session的語法不報錯,但實際生效的卻是by access11g中如果對ddl進行by session的審計會直接報錯。

 

4將審計相關的表移動到其他表空間:

 

由於AUD$表等審計相關的表存放在SYSTEM表空間,因此為了不影響系統的效能,保護SYSTEM表空間,最好把AUD$移動到其他的表空間上。移動時要注意索引的移動。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13177610/viewspace-682699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章