Oracle 審計功能

來源:互聯網
上載者:User

標籤:資料庫   any   儲存   實現   表的操作   trunc   code   tab   檔案   

Oracle 審計功能

一. 簡介

審計(Audit)用於監視使用者所執行的資料庫操作,審計記錄可存在資料字典表(稱為審計記錄:儲存在system資料表空間中的 SYS.AUD$表中,可通過視圖dba_audit_trail查看)或作業系統審計記錄中(預設位置為$ORACLE_BASE/admin/$ORACLE_SID/adump/).。預設情況下審計是沒有開啟的。

審計記錄包含有審計的操作、使用者執行的操作、操作的日期和時間等資訊。

不管你是否開啟資料庫的審計功能,以下這些作業系統會強制記錄:用管理員權限串連Instance;啟動資料庫;關閉資料庫。

二. 配置2.1. 審計是否安裝

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

2.2. 審計資料表空間遷移

審計表預設安裝在SYSTEM資料表空間。可以將相關表遷移到其他資料表空間

SQL>connect / as sysdba;SQL> alter table aud$ move tablespace new_tablespace;SQL> alter index I_aud1 rebuild online tablespace new_tablespace;SQL> alter table audit$ move tablespace new_tablespace;SQL> alter index i_audit rebuild online tablespace new_tablespace;SQL> alter table audit_actions move tablespace new_tablespace;SQL> alter index i_audit_actions rebuild online tablespace new_tablespace;
2.3. 審計參數

Audit_sys_operations

是否對sysdba使用者做審計 ,關於sysdba使用者審計的結果,linux存放在audit_file_dest參數指定位置的aud檔案中,windows存放在事件檢視器的系統日誌中

Audit_trail

None:是預設值,不做審計;
DB:將audit trail 記錄在資料庫的審計相關表中,如aud$,審計的結果只有串連資訊;
DB,Extended:這樣審計結果裡面除了串連資訊還包含了當時執行的具體語句;
OS:將audit trail 記錄在作業系統檔案中,檔案名稱由audit_file_dest參數指定;
XML:10g裡新增的。
註:這兩個參數是static參數,需要重新啟動資料庫才會生效

2.4. 審計層級

當開啟審計功能後,可在三個層級對資料庫進行審計:Statement(語句)、Privilege(許可權)、object(對象)。

Statement
按語句來審計,比如audit table 會審計資料庫中所有的create table,drop table,truncate table語句,alter session by cmy會審計cmy使用者所有的資料庫連接。

Privilege
按許可權來審計,當使用者使用了該許可權則被審計,如執行grant select any table to a,當執行了audit select any table語句後,當使用者a 訪問了使用者b的表時(如select * from b.t)會用到select any table許可權,故會被審計。注意使用者是自己表的所有者,所以使用者訪問自己的表不會被審計。

Object
按對象審計,只審計on關鍵字指定對象的相關操作,如aduit alter,delete,drop,insert on cmy.t by scott; 這裡會對cmy使用者的t表進行審計,但同時使用了by子句,所以只會對scott使用者發起的操作進行審計。

注意Oracle沒有提供對schema中所有對象的審計功能,只能一個一個對象審計,對於後面建立的對象,Oracle則提供on default子句來實現自動審計,比如執行audit drop on default by access;後, 對於隨後建立的對象的drop操作都會審計。但這個default會對之後建立的所有資料庫物件有效,似乎沒辦法指定只對某個使用者建立的對象有效,想比trigger可以對schema的DDL進行“審計”,這個功能稍顯不足。

2.5. 其他審計選項

by access 每一個被審計的操作都會產生一條audit trail。

by session 一個會話裡面同類型的操作只會產生一條audit trail,預設為by session。

whenever successful 操作成功(dba_audit_trail中returncode欄位為0) 才審計,

whenever not successful 反之。省略該子句的話,不管操作成功與否都會審計。

2.6. 審計相關視圖

dba_audit_trail:儲存所有的audit trail,實際上它只是一個基於aud$的視圖。其它的視圖dba_audit_session,dba_audit_object, dba_audit_statement都只是dba_audit_trail的一個子集。

dba_stmt_audit_opts:可以用來查看statement審計層級的audit options,即資料庫設定過哪些statement層級的審計。dba_obj_audit_opts,dba_priv_audit_opts視圖功能與之類似

all_def_audit_opts:用來查看資料庫用on default子句設定了哪些預設對象審計。

三. 使用3.1. 開啟/關閉審計

開啟審計
alter system set audit_sys_operations=TRUE scope=spfile;

alter system set audit_trail=db,extended scope=spfile;

關閉審計
alter system set audit_trail=none;

3.2. 表Action Trail

設定審計內容
audit all by lyj by access;
audit select table, update table, insert table, delete table by lyj by access;
audit execute procedure by lyj by access;

AUDIT DELETE ANY TABLE; --審計刪除表的操作

AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只審計刪除失敗的情況

AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只審計刪除成功的情況

AUDIT DELETE,UPDATE,INSERT ON user.table by SYSTEM; --審計SYSTEM使用者對錶user.table的delete,update,insert操作

如果在命令後面添加by user則只對user的操作進行審計,如果省去by使用者,則對系統中所有的使用者進行審計(不包含sys使用者).

noaudit all on t_test; 撤銷審計

truncate table aud$; 清空審計表內容

附錄

http://www.cnblogs.com/CodingArt/articles/1653315.html
http://www.dbase.cc/2017/09/13/oracle/oracle%E5%AE%A1%E8%AE%A1/

Oracle 審計功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.