1. 程式人生 > >Oracle資料庫統一稽核的啟用測試與關閉

Oracle資料庫統一稽核的啟用測試與關閉

下面的步驟,連線為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;--查詢也只有一行。