Oracle Audit 讀書筆記 --請拍磚
1、什麼是審計
簡單來講,就是把對資料庫的操作記錄下來。不管你是否開啟資料庫的審計功能,以下這些作業系統會強制記錄。
l
用管理員許可權連線Instance
l
啟動資料庫
l
關閉資料庫
2、和審計相關的兩個主要引數
Audit_sys_operations
預設為false,當設定為true時,所有(注意是所有!)sys使用者(包括以sysdba,sysoper身份登入的使用者)的操作都會被記錄,audit trail不會寫在aud$表中,這個很好理解,如果資料庫還未啟動aud$不可用,那麼像conn /as sysdba這樣的連線資訊,只能記錄在其它地方。如果是windows平臺,audti trail會記錄在windows的事件管理中,如果是linux/unix平臺則會記錄在audit_file_dest引數指定的檔案中
Audit_trail
有三個取值
None :預設值,不做審計
DB :將audit trail 記錄在資料庫的審計相關表中,如aud$
OS :將audit trail 記錄在作業系統檔案中,檔名由audit_file_dest引數指定
注:這兩個引數是static引數,需要重新啟動資料庫才能生效。
3、審計級別
當開啟審計功能後(audit_trail=DB/OS),可在三個級別對資料庫進行審計: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進行“審計”,這個功能稍顯不足。
4、審計的一些其他選項
by access / by session
:by access 每一個被審計的操作都會生成一條audit trail。 by session,一個會話裡面同型別的操作只會生成一條audit trail。 預設為by session
whenever [ not ] successful
:whenever successful 操作成功(dba_audit_trail中returncode欄位為0) 才審計,whenever not successful反之。 省略該子句的話,不管操作成功與否都會審計。
5、和審計相關的檢視
dba_audit_trail
儲存所有的audit trail,實際上它只是一個基於aud$的檢視。其它的檢視dba_audit_session,dba_audit_object,dba_audit_statement都只是dba_audit_trail的一個子集。
可以用來檢視statement審計級別的audit options,即資料庫設定過哪些statement級別的審計。dba_obj_audit_opts,dba_priv_audit_opts檢視功能與之類似
all_def_audit_opts
用來檢視資料庫用on default子句設定了哪些預設物件審計。
6、取消審計
將對應審計語句的audit改為noaudit即可,如audit session whenever successful;取消審計noaudit session whenever successful;
不再贅述。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3.Oracle支援的標準審計條件:
a. SQL:> audit session;
b. SQL:> audit create table by dbmgr;
c. SQL:> audit insert any table by access whenever successful;
記錄在任何表上執行成功的每次insert操作。注意使用者訪問自己的表不會被審計,訪問他人的表將會被審計(基於物件的審計除外.)
d.SQL:> autdit select ,delete on dbmgr.test by access;
4.審計選擇的查詢
select * from dba_stmt_audit_opts;
select * from dba_priv_audit_opts;
select * from dba_obj_audit_opts;
如:
noaudit all; --- 取消所有語句的審計
noaudit all privileges; --- 取消所有許可權審計(不針對使用者)
noaudit all privilege by dbmgr --- 取消所有許可權審計(針對使用者)
noaudit all on dbmgr.test; --- 取消物件審計(針對使用者)
5. 查詢標準審計結果
select * from sys.aud$;
select * form. dba_audit_trail;
select * from dba_audit_session;
select * from dba_audit_statement;
select * from dba_audit_object;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-748499/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《請停止無效的努力》讀書筆記筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- ORACLE AUDITOracle
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- Cucumber讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 讀書筆記3筆記
- Oracle Audit setupOracle
- js高程讀書筆記JS筆記
- 《論語》讀書筆記筆記
- 《重構》讀書筆記筆記
- PMBook讀書筆記(一)筆記
- 《如何有效閱讀一本書》讀書筆記筆記
- 《將心注入》讀書筆記筆記
- Raft論文讀書筆記Raft筆記
- 讀書筆記-沒有空白筆記
- JVM讀書筆記之OOMJVM筆記OOM
- swift語法-讀書筆記Swift筆記
- 【GO】《GO HANDBOOK》讀書筆記Go筆記
- 讀書筆記(2)《微精通》筆記
- 《Effective C++》讀書筆記C++筆記
- 編譯原理讀書筆記編譯原理筆記
- 類載入讀書筆記筆記
- 《Effective-Ruby》讀書筆記筆記
- 《CSS揭祕》讀書筆記CSS筆記
- 《圖解 HTTP》 讀書筆記圖解HTTP筆記
- 產品讀書筆記-需求筆記
- C++讀書筆記:字串C++筆記字串
- 今日隨筆-構建之法讀書筆記筆記
- ORACLE AUDIT審計(1)Oracle
- 會議拍攝需要拍的照片筆記筆記
- 《高效能JavaScript》讀書筆記JavaScript筆記
- 《Google File System》讀書筆記(1)Go筆記
- 讀書筆記-資訊收集1筆記