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;--查詢也只有一行。