天天看點

12C-OCP更新1z-060-007

Which Oracle Database component is audited by default if the unified Auditing option is

enabled?

A. Oracle Data Pump

B. Oracle Recovery Manager (RMAN)

C. Oracle Label Security

D. Oracle Database Vault

E. Oracle Real Application Security

Answer: B

正确答案解析:

審計(Auditing)

審計功能(Audit)用于監視使用者所執行的資料庫操作,并且Oracle會将審計跟蹤結果存放指定的地方。

統一審計(Unified Auditing)

Oracle Database 12c 推出一套全新的審計架構,稱為統一審計功能。統一審計主要利用政策和條件在 Oracle 資料庫内部有選擇地執行有效的審計。新架構将現有審計跟蹤統一為單一審計跟蹤,進而簡化了管理,提高了資料庫生成的審計資料的安全性。

關于統一審計的基礎知識,大家可以參考以下Oracle的官方線上文檔,在這裡僅作簡單的介紹。

Database Security Guide

https://docs.oracle.com/database/121/DBSEG/auditing.htm#DBSEG630

初始安裝的12c資料庫,為了相容以前的版本預設啟用混合模式,即傳統審計和統一審計同時有效。你可以通過手動移植到完全的統一審計,也可以使統一審計無效,沿用傳統審計。 

你可以通過以下的SQL文,查詢統一審計是否有效。TRUE表示完全的統一審計有效。FALSE表示并非是完全的統一審計。

SQL>SELECT PARAMETER,VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
PARAMETER         VALUE
----------------  ----------
Unified Auditing  FALSE
           

那麼我們如何的開啟統一審計的模式呢

SQL> conn /as sysdba
SQL> SHUTDOWN IMMEDIATE
SQL> EXIT
$ lsnrctl stop listener_name
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME
$ lsnrctl start listener_name
11:54:45 [email protected]> col parameter for a30
11:57:30 [email protected]> col VALUE for a30
11:57:41 [email protected]> SELECT PARAMETER,VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
PARAMETER                      VALUE
------------------------------ ------------------------------
Unified Auditing               TRUE
           

同理,你也可以通過以下的方法把資料庫統一審計功能關閉掉(UNIX為例)。

SQL> conn /as sysdba
SQL> SHUTDOWN IMMEDIATE
SQL> EXIT
$ lsnrctl stop listener_name
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk uniaud_off ioracle
$ lsnrctl start listener_name
SQL> conn /as sysdba
SQL> STARTUP
           

預設有效的審計政策

12c資料庫中預先定義了一些審計政策,并且根據版本不同,預設開啟的審計政策也略有不同。

我們可以通過audit_unified_enabled_policies視圖進行确認預設開啟的統一審計的審計政策。

--12.1.0.2的預設審計政策

col USER_NAME for a30
col POLICY_NAME for a30
SQL> select USER_NAME,POLICY_NAME,ENABLED_OPT,SUCCESS,FAILURE from audit_unified_enabled_policies;
USER_NAME                      POLICY_NAME                    ENABLED_ SUC FAI
------------------------------ ------------------------------ -------- --- ---
ALL USERS                      ORA_SECURECONFIG               BY       YES YES
ALL USERS                      ORA_LOGON_FAILURES             BY       NO  YES
           

由上面的輸出結果我們可以看到,不做任何配置的情況下, 

在12.1.0.2資料庫的環境中,預設開啟了ORA_SECURECONFIG和ORA_LOGON_FAILURES審計政策,資料庫會根據這2個審計政策,對相應的操作進行審計。 

而在12.1.0.2資料庫中,,ORA_SECURECONFIG審計政策移除了對所有LOGON和LOGOFF的審計,而增加了一個新的審計政策ORA_LOGON_FAILURES,用于僅審計登陸失敗的操作。這樣更加方管理,也能改善因為大量LOGON和LOGOFF的審計對表空間的浪費。

ORA_SECURECONFIG審計政策的詳細可以參考以下官方線上文檔,

http://docs.oracle.com/database/121/DBSEG/audit_config.htm#CHDIGFHG

ORA_LOGON_FAILURES審計政策的詳細可以參考以下, 

http://docs.oracle.com/database/121/DBSEG/audit_config.htm#DBSEG703

附:無效掉預設的審計政策方法。

SQL>--12.1.0.2的環境
SQL> noaudit policy ORA_SECURECONFIG;
Noaudit succeeded.
SQL> noaudit policy ORA_LOGON_FAILURES;
Noaudit succeeded.
           

我們摘取官方文檔上的内容:

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;
           

包含了這麼多的審計的内容,在當中,我們并沒有看到rman相關的内容的審計。這個時候,我們可以手工做下測試,用rman進行下備份恢複的實驗

通過檢視下面的視圖

select client_program_name,action_name,sql_text,system_privilege_used from UNIFIED_AUDIT_TRAIL order by event_timestamp desc;
CLIENT_PROGRAM_NAME       ACTION_NAME          SQL_TEXT                                 SYSTEM_PRIVILEGE_USED
------------------------- -------------------- ---------------------------------------- ------------------------------
[email protected] (TNS V1-V3)     ALTER DATABASE       alter database recover if needed         SYSDBA, ALTER DATABASE
                                                datafile 17
[email protected] (TNS V1-V3)     ALTER DATABASE       alter database recover datafile list clear SYSDBA, ALTER DATABASE
           

其實就是因為rman在本質上還是調用的sql_text的語句,它還是調用了ALTER DATABASE的權限,進而會觸發ORA_SECURECONFIG的統一審計

是以正确的答案是:B

繼續閱讀