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

Oracle審計參數

執行sql 設置 登陸 host blog rebuild 遷移 dba reat

以下操作全是基於
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;

技術分享圖片

修改當前審計參數為DB_EXTENDED(這樣可以查詢到具體執行的sql)
① 執行SQL> ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
② 登陸數據庫主機,切換到oracle用戶用sysdba登陸用戶
[oracle@localhost ~]$ sqlplus / as sysdba
③ 依次執行以下語句重啟數據庫 SQL> shutdown immediate; SQL> startup
④ 再次查詢審計參數 SQL> show parameter audit_trail;
技術分享圖片

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;

Oracle審計參數