久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle12.2c統一審計是什么

185次閱讀
沒有評論

共計 8334 個字符,預計需要花費 21 分鐘才能閱讀完成。

這篇文章主要介紹“Oracle12.2c 統一審計是什么”,在日常操作中,相信很多人在 Oracle12.2c 統一審計是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Oracle12.2c 統一審計是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

什么是統一審計?

審計是指監控和記錄用戶對數據庫執行所有成功或失敗的操作。

而統一審計(UNIFIED_AUDIT_TRAIL)是 Oracle 在 12c 版本推出的一種全新的審計體系。在新的體系下,Oracle 提供了更精細化的管理,并且將所有的審計記錄按照統一的格式寫入到 AUDSYS schema 下,可以通過 UNIFIED_AUDIT_TRAIL 視圖查看。默認地,審計記錄會被存放在 SYSAUX 表空間下。當然,Oracle 也建議將審計數據從 SYSAUX 中剝離出來放到新的表空間下,這一功能可以通過 DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION 包實現。

統一審計的相關權限?

除了 SYS 用戶外,只有被賦予 AUDIT_ADMIN 或 AUDIT_VIEWER 的用戶才能看到 UNIFIED_AUDIT_TRAIL 數據字典視圖。如果用戶只需要查詢 UNIFIED_AUDIT_TRAIL,但是不需要創建審計策略(audit policy),那么只需要賦予 AUDIT_VIEWER role 就可以了。

如何檢查統一審計是否開啟?

SQL SELECT VALUE FROM V$OPTION WHERE   PARAMETER = Unified Auditing

 

VALUE

—————————————————————-

FALSE

TRUE: 代表完全統一審計開啟;

FALSE:代表傳統審計和統一審計的混合模式。

什么是完全統一審計模式 (Pure unified auditing) 和混合審計模式(Mixed Mode Auditing)?

完全統一審計模式,顧名思義,就是摒棄了之前的傳統審計模式。

禁用統一審計方法, 以單機為例:

shutdown

cd $ORACLE_HOME/rdbms/lib

make -f ins_rdbms.mk uniaud_off ioracle

startup

混合審計模式,只要開啟了統一審計策略,就會形成統一審計和傳統審計并存的局面,此時就是混合審計模式。默認建庫時會啟用 ORA_SECURECONFIG,一個統一審計策略,這也就意味著默認建庫時,就是混合審計模式。

ORA_SECURECONFIG 詳情如下:

CREATE AUDIT POLICY ORA_SECURECONFIG

 PRIVILEGES ALTER ANY TABLE, CREATE ANY   TABLE, DROP ANY TABLE,

  CREATE ANY PROCEDURE, DROP ANY   PROCEDURE, ALTER ANY PROCEDURE,

  GRANT ANY PRIVILEGE, GRANT ANY   OBJECT PRIVILEGE, GRANT ANY ROLE,

  AUDIT SYSTEM, CREATE EXTERNAL   JOB, CREATE ANY JOB,

  CREATE ANY LIBRARY,

  EXEMPT ACCESS POLICY,

  CREATE USER, DROP USER,

  ALTER DATABASE, ALTER SYSTEM,

  CREATE PUBLIC SYNONYM, DROP   PUBLIC SYNONYM,

  CREATE SQL TRANSLATION PROFILE,   CREATE ANY SQL TRANSLATION PROFILE,

  DROP ANY SQL TRANSLATION PROFILE,   ALTER ANY SQL TRANSLATION PROFILE,

  TRANSLATE ANY SQL,

  EXEMPT REDACTION POLICY, 

  PURGE DBA_RECYCLEBIN, LOGMINING,

   ADMINISTER KEY MANAGEMENT

 ACTIONS    ALTER USER, CREATE ROLE, ALTER ROLE, DROP ROLE,

  SET ROLE, CREATE PROFILE, ALTER   PROFILE,

  DROP PROFILE, CREATE DATABASE   LINK,

  ALTER DATABASE LINK, DROP   DATABASE LINK,

   CREATE DIRECTORY, DROP DIRECTORY,

  CREATE PLUGGABLE DATABASE, 

  DROP PLUGGABLE DATABASE,

  ALTER PLUGGABLE DATABASE,

  EXECUTE ON DBMS_RLS;

審計數據落盤策略是什么?

審計數據寫入數據文件有兩種方式:

1. immediate-write mode 立即寫

2. queued-write mode 隊列寫

立即寫是將產生的審計數據馬上寫入硬盤,這樣可以保證不丟失審計數據,但是對系統系統會有些許影響。

隊列寫是先將審計數據寫入 SGA,而不是直接寫入數據文件,根據一定的策略再將審計數據寫入數據文件。一般有兩種策略:


時間策略:每隔三秒鐘,視系統繁忙程度,也可能三秒鐘了也沒有寫入。由隱含參數_unified_audit_flush_interval 控制。


空間策略:存放在 SGA 中的審計數據容量達到 85%。該區域默認是 1M,由參數 unified_audit_sga_queue_size 控制,比例由隱含參數_unified_audit_flush_threshold 控制

SQL col name for a30;

SQL col value for a10;

SQL select * from

    2  (select

    3  x.ksppinm name,

    4  y.ksppstvl value,

    5  y.ksppstdf isdefault,

    6    decode(bitand(y.ksppstvf,7),1, MODIFIED ,4, SYSTEM_MOD , FALSE )   ismod,

    7    decode(bitand(y.ksppstvf,2),2, TRUE , FALSE ) isadj

    8  from

    9  sys.x$ksppi x,

 10    sys.x$ksppcv y

 11    where

 12    x.inst_id = userenv(Instance) and

 13    y.inst_id = userenv(Instance) and

 14    x.indx = y.indx

 15    order by

 16    translate(x.ksppinm, _ ,)) T where T.name like   %unified_audit%

 

NAME  VALUE  ISDEFAULT ISMOD  ISADJ

—————————— ———-   ——— ———- —–

_unified_audit_flush_interval  3    TRUE  FALSE  FALSE

_unified_audit_flush_threshold 85  TRUE  FALSE  FALSE

_unified_audit_policy_disabled FALSE  TRUE  FALSE  FALSE

unified_audit_sga_queue_size  1048576    TRUE  FALSE  FALSE

當前落盤方式

SQL SELECT PARAMETER_VALUE

    2  FROM   DBA_AUDIT_MGMT_CONFIG_PARAMS

    3  WHERE PARAMETER_NAME = AUDIT   WRITE MODE

 

PARAMETER_VALUE

—————————————————————–

QUEUED WRITE MODE

修改為 immediate-write mode

BEGIN

 DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE,

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);

END;

/

修改為

BEGIN

 DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE,

    DBMS_AUDIT_MGMT.AUDIT_TRAIL_QUEUED_WRITE);

END;

/

隊列寫模式下如何手動 flush 審計數據?

手動刷新當前實例,適用于單機和 rac 單實例

EXEC   DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;

 

EXEC DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL(DBMS_AUDIT_MGMT.FLUSH_CURRENT_INSTANCE);

 

Flush RAC 所有實例

EXEC   DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL(DBMS_AUDIT_MGMT.FLUSH_ALL_INSTANCES);

對于多租戶環境

當前 PDB

BEGIN   

 DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL(

    CONTAINER  =   DBMS_AUDIT_MGMT.CONTAINER_CURRENT);

END;

/

所有的 PDB 環境

BEGIN   

 DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL(

    CONTAINER  =   DBMS_AUDIT_MGMT.CONTAINER_ALL);

END;

/

如何將操作系統上的審計數據寫入數據庫統一審計文件中?

當數據庫 mount 狀態,或者 read only,或者關閉時,Oracle 會將審計數據存放在操作系統的 $ORACLE_BASE/audit/$ORACLE_SID 目錄下。

查看當前操作系統下

oracle@bd-dev-mingshuo-183:/opt/app/oracle/audit/mingdb/70A2182C94E1412DE053B7D91FAC647A$ll

total 32

-rw——- 1 oracle oinstall 30720 Jul 10   16:57 ora_audit_0786.bin

登入數據庫執行

EXEC DBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES;

命令完成之后,操作系統那個文件就消失了。

每個 PDB 會有一個同名的 uuid 目錄,如果要將 pdb 的數據導入數據庫,那么需要在 pdb 中執行上述命令。

刪除審計的兩種方法?1. 自動清理任務

設置清理時間點

BEGIN

    DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(

    AUDIT_TRAIL_TYPE  =   DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    LAST_ARCHIVE_TIME  =   12-OCT-2013 06:30:00.00 ,

    RAC_INSTANCE_NUMBER  =   1,

    CONTAINER  =   DBMS_AUDIT_MGMT.CONTAINER_CURRENT);

END;

/

AUDIT_TRAIL_TYPE:指定審計數據類型


DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED:統一審計數據


DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD:AUD$ 表


DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD:FGA_LOG$ 表


DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS:操作系統上.aud 結尾的文件


DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML:XML 文件

LAST_ARCHIVE_TIME:指定時間,設置后該時間可以從 DBA_AUDIT_MGMT_LAST_ARCH_TS 中查出,設置時間點的意義在于,會清理這個時間點之前的歸檔過的數據。

RAC_INSTANCE_NUMBER:RAC 數據庫相關參數。單實例不需要設置。默認值是 null。因為 RAC 數據庫也只有一個 AUD$ 表和 FGA_LOG$ 表

,那么即使是 RAC 數據庫,對應的審計類型 DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD 和 DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,那么也不用設置這個值。

CONTAINER:適用于多租戶環境


DBMS_AUDIT_MGMT.CONTAINER_CURRENT:指定當前 PDB


DBMS_AUDIT_MGMT.CONTAINER_ALL:所有 PDB

當上述設置完成后,就可以用 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 包清理設置的時間點之前的審計數據。

BEGIN

DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(

    audit_trail_type = DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    use_last_arch_timestamp = TRUE);

END;

/

創建清理 job

BEGIN

    DBMS_AUDIT_MGMT.CREATE_PURGE_JOB (

    AUDIT_TRAIL_TYPE    = DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    AUDIT_TRAIL_PURGE_INTERVAL    = 12,

    AUDIT_TRAIL_PURGE_NAME    = Audit_Trail_PJ ,

    USE_LAST_ARCH_TIMESTAMP    = TRUE,

    CONTAINER    = DBMS_AUDIT_MGMT.CONTAINER_CURRENT);

END;

/

AUDIT_TRAIL_TYPE: 指定審計數據類型


DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED:統一審計數據


DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD:針對 AUD$ 表


DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD:針對 FGA_LOG$ 表


DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD:針對 AUD$ 表和 FGA_LOG$ 表


DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS:操作系統上.aud 結尾的文件


DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML:XML 文件


DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES:操作系統上.aud 結尾的文件和 XML 文件


DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL:上述所有類型的審計數據

AUDIT_TRAIL_PURGE_INTERVAL:job 每隔多久就運行一次,單位是小時。如果后面想要更改這個值,那么可以用 DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL 包。

USE_LAST_ARCH_TIMESTAMP:清理數據的時間選項


TRUE: 清理截止到上次歸檔的時間點


FLASE: 刪除所有的數據

CONTAINER:多租戶環境適用


DBMS_AUDIT_MGMT.CONTAINER_CURRENT:PDB 級別


DBMS_AUDIT_MGMT.CONTAINER_ALL:CDB 和 PDB 級別

設置好 job 后,啟動

BEGIN

 DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS(

    AUDIT_TRAIL_PURGE_NAME    = Audit_Trail_PJ ,

    AUDIT_TRAIL_STATUS_VALUE    = DBMS_AUDIT_MGMT.PURGE_JOB_ENABLE);

END;

/

AUDIT_TRAIL_PURGE_NAME:purge job 策略的名字,就是上面 CREATE_PURGE_JOB 里指定的。

AUDIT_TRAIL_STATUS_VALUE:


DBMS_AUDIT_MGMT.PURGE_JOB_ENABLE:開啟


DBMS_AUDIT_MGMT.PURGE_JOB_DISABLE:停止

修改 job 運行間隔

BEGIN

 DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL(

    AUDIT_TRAIL_PURGE_NAME    = Audit_Trail_PJ ,

    AUDIT_TRAIL_INTERVAL_VALUE    = 24);

END;

/

刪除清理 job

BEGIN

 DBMS_AUDIT_MGMT.DROP_PURGE_JOB(

    AUDIT_TRAIL_PURGE_NAME  =   Audit_Trail_PJ

END;

/

2. 手動清理審計

BEGIN

    DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(

    AUDIT_TRAIL_TYPE    =     DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    USE_LAST_ARCH_TIMESTAMP  =   TRUE,

    CONTAINER    =     DBMS_AUDIT_MGMT.CONTAINER_CURRENT );

END;

/

 

各參數含義同上。

統一審計生產實戰配置?

為了防止審計數據過多,需要定期對審計數據進行清理。

移動審計表空間

BEGIN

    DBMS_AUDIT_MGMT.set_audit_trail_location(

    audit_trail_type  =   DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,

    audit_trail_location_value = TBS_MING

END;

/

設置 purge job

BEGIN

    DBMS_AUDIT_MGMT.CREATE_PURGE_JOB (

    AUDIT_TRAIL_TYPE    = DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

    AUDIT_TRAIL_PURGE_INTERVAL    = 24,

    AUDIT_TRAIL_PURGE_NAME    = Unified_Audit_Trail_PURGEJOB ,

    USE_LAST_ARCH_TIMESTAMP    = TRUE);

END;

/

上面的 job 在運行時,要根據 SET_LAST_ARCHIVE_TIMESTAMP 的時間,下面的 job 可以手動刷新這個時間,不然上面的 job 最多只運行一次。

BEGIN

    DBMS_SCHEDULER.create_job (

    job_name  = audit_last_archive_time ,

    job_type  =   PLSQL_BLOCK ,

    job_action  = BEGIN

      DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,   TRUNC(SYSTIMESTAMP)-60);

  END; ,

    start_date  =   SYSTIMESTAMP,

    repeat_interval = freq=daily; byhour=0; byminute=0; bysecond=0; ,

    end_date  = NULL,

    enabled  = TRUE,

    comments  =   Automatically set audit last archive time.

END;

/

到此,關于“Oracle12.2c 統一審計是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計8334字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 武汉市| 益阳市| 明水县| 东乌珠穆沁旗| 普安县| 梁河县| 丹棱县| 焦作市| 莱州市| 榆树市| 阳原县| 邻水| 鸡东县| 东莞市| 饶河县| 宁远县| 高碑店市| 绥江县| 河间市| 晋江市| 宜昌市| 保亭| SHOW| 鹤岗市| 香河县| 上犹县| 平湖市| 平舆县| 平原县| 新邵县| 曲阜市| 龙泉市| 武川县| 灵寿县| 盐津县| 东港市| 鄯善县| 禹城市| 澎湖县| 广丰县| 武山县|