1. 程式人生 > >Oracle數據庫統一審核的啟用測試與關閉

Oracle數據庫統一審核的啟用測試與關閉

times creat rac root 數據庫實例 緩存 rail username cursor

下面的步驟,連接為sysdba,除非指定了其它方式。

(1)運行如下查詢,確定統一審核是否啟用了:

select value from v$option where parameter=‘Unified Auditing‘;

在標準安裝中,這會返回FALSE。如果返回的是TRUE,表示已經啟用了統一審核,則跳到步驟(5)。

(2)關閉Oracle服務。

關閉所有數據庫實例和偵聽器。在Windows上,也停止所有與Oracle相關的Windows服務。

(3)啟用統一審核。

windows上,是復制統一審核動態鏈接庫:

cd %ORACLE_HOME%\bin

copy orauniaud12.dll.dbl orauniaud12.dll

或者直接到%ORACLE_HOME%\bin目錄下,手動復制orauniaud12.dll.dbl為orauniaud12.dll

(4)確認統一審核現在已啟用。

啟動實例和偵聽器(在Windows上,啟動相關的服務),重新運行步驟(1)中的查詢語句,看是否返回TRUE。

(5)創建並啟用自己的策略。

create audit policy aud_dba_role roles dba; --創建角色策略

audit policy aud_dba_role by system; --把角色策略賦予system

select policy_name,enabled_opt,user_name from audit_unified_enabled_policies; ---確認已經配置了策略,查詢已生效的統一審核策略

(6)測試策略

連接為system用戶,執行幾個操作。

create user x identified by y; ---創建用戶,在12c中,名字前面要加前綴c##,不過可以在pdb中建用戶,不用帶c##

alter user c##test identified by test;---修改用戶密碼(12c cdb$root中用戶)

alter system set open_cursors=300 scope=memory; ---修改實例參數,僅在內存中生效

exec dbms_audit_mgmt.flush_unified_audit_trail; ---把當前緩存到SGA中的所有記錄轉存到數據庫的審核記錄中。

select dbusername,sql_text,audit_type,action_name,object_name,unified_audit_policies from unified_audit_trail; ---查詢審核記錄

如果有記錄,

(7)

連接為sysdba,找到審核記錄表。

select table_name from dba_tables where owner=‘AUDSYS‘;

上述語句的查詢結果為aud$unified,繼而查詢記錄表中的數據

select audit_type,sql_text,event_timestamp,unified_audit_policies from audsys.aud$unified;

默認情況下,不能對表audsys.aud$unified執行DML和DDL操作。即執行語句:delete from audsys.aud$unified會報錯。

但是可以通過對unified_audit_trail來操作,刪除了unified_audit_trail中的記錄之後,,audsys.aud$unified中的記錄也被清除了。

(8)清除審核記錄

select count(*) from unified_audit_trail;--查詢現有審核記錄數

execute dbms_audit_mgmt.clean_audit_trail(dbms_audit_mgmt.audit_trail_all,false);--通過dbms_audit_mgmt來管理unified_audit_trail中的審核記錄

select count(*) from unified_audit_trail;--再次查詢記錄,發現只有一行,這一行是剛才清楚數據的那條動作記錄。

select count(*) from audsys.aud$unified;--查詢也只有一行。

Oracle數據庫統一審核的啟用測試與關閉