5、Oracle數據庫審計


1、審計(Audit):

對用戶所執行的數據庫活動的跟蹤記錄,便於事后監督、檢查

 

審計信息存放位置:

審計記錄信息,存儲在system表空間中的SYS.AUD$數據字典表;

或操作系統默認位置$ORACLE_BASE/admin/$ORACLE_SID/adump/;

 

Oracle 11G以后,數據庫默認是開啟審計功能的,因此有時候我們忘記了關閉該功能導致SYSTEM表空間暴滿,但由於關閉審計功能需要重啟數據庫,此類操作生產環境下是不允許的,因此我們需要找出哪類審計產生的較多,然后單獨的進行關閉;我們可以通過如下方法查找:如果你發現AUD$這個表比較大了,檢查下是哪種審計占的空間:

SQL> select action_name,count(*) from dba_audit_trail group by action_name;

--一般是LOGON和LOGOFF類型的審計最多。取消此類審計:

SQL> noaudit session whenever successful;

--一般來說,如果空間不是占的特別多,此類審計還是保留為好。可以取消對一些登錄特別頻繁的用戶的審計,比如DBSNMP用戶:

SQL> noaudit session by U007;

--關閉審計后,對表sys.aud$進行清理

select * from  sys.aud$;

truncate table selsys.aud$;

 

審計參數AUDIT_TRAIL

參數值取值列表:

(1).DB/TRUE ---- 啟用審計,並且把審計結果存放在數據庫的SYS.AUD$表中

(2).OS ---- 啟用審計,並把審計結果存放在操作系統的審計信息中

(3).DB_EXTENDED ---- 啟用審計,把審計結果存放在數據庫SYS.AUD$表中,並在CLOB列的SQLBINDSQLTEXT字段記錄額外的信息;

(4).XML ---- 啟用審計,以XML格式寫所有審計記錄;

(5).EXTENDED ---- 啟用審計,在審計跟蹤中記錄所有列,包括SQLTEXTSQLBIND

(6).NONE/FALSE ---- 禁用審計

 

以下步驟設置Oracle的審計功能:

(1).修改審計參數AUDIT_TRAIL:

Alter system set AUDIT_TRAIL=DB scope=spfile;

 (2).初始化數據庫審計功能:

connect /as sysdba執行腳本cataudit.sql,腳本位置D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN;

 (3).重啟數據庫:

由於參數AUDIT_TRAIL不是動態的,需要關閉數據庫重啟生效

  

2、審計分類和用法:

語句審計:

--語法

AUDIT sql_statement_clause [BY user_name] | [BY [SESSION | ACCESS]

WHENEVER [NOT] SUCCESSFUL]

參數說明:

sql_statement_clause ---- SQL語句或選項;

BY ACCESS ---- 存取方式,每條語句被執行一次都要審計,不管語句是否相同;

BY SESSION ---- 會話方式,相同的語句只被審計一次,這也是系統默認方式;

WHENEVER SUCCESSFUL ---- 表示只對成功語句進行審計;

WHENEVER NOT SUCCESSFUL ---- 表示只對不成功語句進行審計。

 

--舉例:

--(1).審計用戶對對象的操作:

Audit table by scott;

--(2).審計用戶執行的SQL語句:

Audit create table by scott;

Audit insert table by u0007; ---- 審計insert into表或視圖;

Audit delete table by u0007; ---- 審計刪除表或視圖中的行;

--(3).指定審計方式:

Audit delete table by u0007 by access; ---- 存取方式,每條語句執行一次都要審計;

--(4).審計成功與不成功的會話:

Audit session by u007 whenever not successful; ---- 只對不成功語句進行審計;

--(5).了解哪些用戶進行了審計,可查詢數據字典視圖DBA_STMT_AUDIT_OPTS

select * from dba_stmt_audit_opts where user_name='U007';

--(6).停止語句審計:

Noaudit alter table by U007;

 

權限審計:

--語法:

AUDIT privilege [BY user_name] | [BY [SESSION | ACCESS]

WHENEVER [NOT] SUCCESSFUL]

 

對象審計:

--語法:

AUDIT schema_object_clause ON schema

[BY user_name] | [BY [SESSION | ACCESS]

WHENEVER [NOT] SUCCESSFUL]

Audit select,insert,delete on scott.dept by access;

 

3、細粒度審計(FGA)

是由DBMS_FGAPL/SQL程序實現的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM