Oracle審計


1.什么是審計

審計是用來監控和記錄用戶的數據庫操作

2.未開啟審計

即使未開啟審計,Oracle數據庫也會將以下三種操作記錄在OS的$ORACLE_BASE/admin/$ORACLE_SID/adump/

  • 以sysdba或者sysoper等管理員用戶連接數據庫實例(不管實例是否打開)
  • 關閉數據庫操作
  • 打開數據庫操作

3.標准審計

3.1.數據庫參數

  • audit_file_dest

    OS中審計信息存放位置

  • audit_sys_operations

    默認值為FALSE,即不審計,修改后需要重啟數據庫

    審計sys(或者以sysdba,sysoper身份登錄)用戶的所有操作(查詢表,更新表等等)

    審計信息放在OS中

  • audit_trail

    none:關閉標准審計,11G之前的默認值

    db:將審計信息記錄在數據庫中(sys.aud$),只包含連接信息(LOGON,LOGOFF),但不包含以sysdba或者sysoper連接的信息(記錄在OS中)

    db,extended:將審計信息記錄在數據庫中,同時包含執行的SQL以及綁定變量

    os:將審計信息記錄在OS中

    xml:以XML的形式將審計信息記錄在OS中

    xml,extended:以XML的形式將審計信息記錄在OS中,同時記錄執行的SQL以及綁定變量

3.2.審計級別

3.1節中,audit_trail為db,extended或者xml,extended時,可以記錄額外的SQL信息,前提是開啟了語句,權限或者對象審計

  1. 語句級別

    對某種類型的SQL語句進行審計但並不包含具體的對象

  2. 權限級別

    任何使用了這個權限的都會被審計

  3. 對象級別

    對數據庫對象進行審計

3.3.審計用SQL

/*語句級別*/
-- 審計所有對表的操作,例如修改,創建,刪除表
audit table;
-- 取消審計
noaudit table;

/*權限級別*/
-- 審計所有使用此權限的操作
audit select any table;
-- 取消審計
noaudit select any table;

/*對象級別*/
-- 審計某個表增刪改查的操作
aduit select,update,insert,delete on monkey.test;
-- 取消審計
noaudit select,update,insert,delete on monkey.test;

/*通用部分*/
by access  --每一個被審計的操作都會生成一條audit trail
by session --一個會話里面同類型的操作只會生成一條audit trail,默認為by session
whenever successful --操作成功才審計
whenever not successful --操作失敗才審計

3.4.標准審計相關視圖

  • DBA_OBJ_AUDIT_OPTS

    對象級別標准審計的策略

  • DBA_STMT_AUDIT_OPTS

    語句級別標准審計的策略

  • DBA_PRIV_AUDIT_OPTS

    權限級別標准審計策略

  • DBA_AUDIT_OBJECT

    對象級別標准審計記錄

  • DBA_AUDIT_STATEMENT

    語句級別標准審計記錄

  • DBA_AUDIT_SESSION

    登錄登出標准審計記錄(普通用戶,以SYSDBA或者SYSOPER的用戶不記錄)

  • DBA_AUDIT_TRAIL

    所有的標准審計記錄

4.精細審計

FGA(fine grained auditing),可以指定更加精細的審計策略

參考:FGA審計


免責聲明!

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



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