1. 程式人生 > >Oracle審計引數

Oracle審計引數

以下操作全是基於
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

  1. 審計引數解析
    AUDIT_TRAIL啟用或禁用資料庫審計。當設定該引數為NONE或FALSE時,將禁止資料庫審計;當設定該引數為OS時,將啟用資料庫審計,並將審計記錄寫入到OS審計跟蹤檔案中;當設定該引數為DB或TRUE時,將啟用資料庫審計,並將審計記錄寫入到資料字典SYS.AUD$中;當設定該引數為DB_EXTENDED時,不僅將審計記錄寫入到資料字典SYS.AUD$中,還會填充該資料字典的SQLBIND和SQLTEXT列。

取值說明:
none 禁用資料庫審計
os 啟用資料庫審計,並將資料庫審計記錄定向到作業系統審計記錄
db 啟用資料庫審計,並將資料庫所有審計記錄定向到資料庫的SYS.AUD$表
db,extended 啟用資料庫審計,並將資料庫所有審計記錄定向到資料庫的SYS.AUD$表。另外,填充SYS.AUD$表的SQLBIND 列和SQLTEXT CLOB 列。
xml 啟用資料庫審計,並將所有記錄寫到XML格式的作業系統檔案中。
xml,extended 啟用資料庫審計,輸出審計記錄的所有列,包括SqlText和SqlBind的值。
2.查詢當前資料庫審計引數
查詢當前審計引數 SQL> show parameter audit_trail;
Oracle審計引數

修改當前審計引數為DB_EXTENDED(這樣可以查詢到具體執行的sql)
① 執行SQL> ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
② 登陸資料庫主機,切換到oracle使用者用sysdba登陸使用者
[[email protected] ~]$ sqlplus / as sysdba
③ 依次執行以下語句重啟資料庫 SQL> shutdown immediate; SQL> startup
④ 再次查詢審計引數 SQL> show parameter audit_trail;
Oracle審計引數

1.取消審計

noaudit insert,update,delete on testuser.tables;
testuser 使用者模式
tables 表名

---新增審計
audit create table,update table,insert table,delete table by testuser by access;
audit execute procedure by testuser by access;

3.測試審計是否開啟
① 執行SQL> select * from dba_audit_trail;檢查是否有相應的審計資訊。

三、 遷移表空間
將審計資訊遷移到非系統表空間、以防止系統表空間撐爆。
我們先建立一個叫audit_data的表空間來存放資料
CREATE TABLESPACE audit_data LOGGING DATAFILE '/data01/oracle/oradata/AUTODB/datafile/audit_data.dbf' SIZE 10240M AUTOEXTEND ON NEXT 100M MAXSIZE 12000M;

遷移表至新的表空間
SQL> alter table audit$ move tablespace audit_data;

SQL> alter index i_audit rebuild online tablespace audit_data;

SQL> alter table audit_actions move tablespace audit_data;

SQL> alter index i_audit_actions rebuild online tablespace audit_data;

SQL>alter table AUD$ move tablespace audit_data;

查詢表空間是否遷移成功的相關SQL
SQL> SELECT table_name, tablespace_name FROM dba_tables WHERE table_name IN ('AUD$', 'FGA_LOG$',’AUDIT$’,’I_AUDIT’,’AUDIT_ACTIONS,’I_AUDIT_ACTIONS’) ORDER BY table_name;