程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 短時間學會Oracle Audit的方案介紹

短時間學會Oracle Audit的方案介紹

編輯:Oracle數據庫基礎

你是否對獲得學會Oracle Audit的方法感到十分頭疼?如果是這樣子的話,以下的文章將會給你相應的解決方案,以下的文章主要是介紹Oracle Audit的方法,以下就是其相關內容的具體描述。

1、什麼是審計

簡單來講,就是把對數據庫的操作記錄下來。不管你是否打開數據庫的審計功能,以下這些操作系統會強制記錄。

l 用管理員權限連接Instance

l 啟動數據庫

l 關閉數據庫

2、和審計相關的兩個主要參數

  1. Audit_sys_Operations 

默認為false,當設置為true時,所有(注意是所有!)sys用戶(包括以sysdba,sysoper身份登錄的用戶)的操作都會被記錄,Oracle audit trail不會寫在aud$表中,這個很好理解,如果數據庫還未啟動aud$不可用,那麼像conn /as sysdba這樣的連接信息,只能記錄在其它地方。如果是windows平台,audti trail會記錄在Windows的事件管理中,如果是Linux/unix平台則會記錄在audit_file_dest參數指定的文件中

Audit_trail

有三個取值

None :默認值,不做審計

DB :將audit trail 記錄在數據庫的審計相關表中,如aud$

OS :將Oracle 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、和審計相關的視圖

  1. dba_audit_trail 

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

  1. dba_stmt_audit_opts 

可以用來查看statement審計級別的audit options,即數據庫設置過哪些statement級別的審計。dba_obj_audit_opts,dba_priv_audit_opts視圖功能與之類似

  1. all_def_audit_opts 

用來查看數據庫用on default子句設置了哪些默認對象審計。

6、取消審計

將對應審計語句的Oracle audit改為noaudit即可,如audit session whenever successful;取消審計noaudit session whenever successful;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved