Oracle使用大量不同的審計方法來監控使用何種權限,以及訪問哪些對象。審計不會防止使用這些權限,但可以提供有用的信息,用於揭示權限的濫用和誤用。
下表中總結了Oracle數據庫中不同類型的審計。
| 審 計 類 型 |
說 明 |
| 語句審計 |
按照語句類型審計SQL語句,而不論訪問何種特定的模式對象。也可以在數據庫中指定一個或多個用戶,針對特定的語句審計這些用戶 |
| 權限審計 |
審計系統權限,例如CREATE TABLE或ALTER INDEX。和語句審計一樣,權限審計可以指定一個或多個特定的用戶作為審計的目標 |
| 模式對象審計 |
審計特定模式對象上運行的特定語句(例如,DEPARTMENTS表上的UPDATE語句)。模式對象審計總是應用於數據庫中的所有用戶 |
| 細粒度的審計 |
根據訪問對象的內容來審計表訪問和權限。使用程序包DBMS_FGA來建立特定表上的策略 |
下面幾節介紹DBA如何管理系統和對象權限使用的審計。當需要一定的粒度時,DBA可以使用細粒度的審計來監控對表中某些行或列的訪問,而不僅僅是是否訪問表。
和審計相關的主要參數
SQL>show parameter audit
audit_file_dest
audit_sys_operations
audit_trail
audit_sys_operations:
默認為false,當設置為true時,所有sys用戶(包括以sysdba,sysoper身份登錄的用戶)的操作都會被記錄,audit trail不會寫在aud$表中,這個很好理解,如果數據庫還未啟動aud$不可用,那么像conn /as sysdba這樣的連接信息,只能記錄在其它地方。如果是windows平台,audti trail會記錄在windows的事件管理中,如果是linux/unix平台則會記錄在audit_file_dest參數指定的文件中。
audit_trail:
None:是默認值,不做審計;
DB:將audit trail 記錄在數據庫的審計相關表中,如aud$,審計的結果只有連接信息;
DB,Extended:這樣審計結果里面除了連接信息還包含了當時執行的具體語句;
OS:將audit trail 記錄在操作系統文件中,文件名由audit_file_dest參數指定;
XML:10g里新增的。
10g Values:
-
noneDisables database auditing.
-
osEnables database auditing and directs all audit records to the operating system's audit trail.
-
dbEnables database auditing and directs all audit records to the database audit trail (the
SYS.AUD$table). -
db,extendedEnables database auditing and directs all audit records to the database audit trail (the
SYS.AUD$table). In addition, populates theSQLBINDandSQLTEXTCLOB columns of theSYS.AUD$table. -
xmlEnables database auditing and writes all audit records to XML format OS files.
-
xml,extendedEnables database auditing and prints all columns of the audit trail, including SqlText and SqlBind values.
注:參數AUDIT_TRAIL不是動態的,為了使AUDIT_TRAIL參數中的改動生效,必須關閉數據庫並重新啟動。在對SYS.AUD$表進行審計時,應該注意監控該表的大小,以避免影響SYS表空間中其他對象的空間需求。推薦周期性歸檔SYS.AUD$中的行,並且截取該表。Oracle提供了角色 DELETE_CATALOG_ROLE,和批處理作業中的特殊賬戶一起使用,用於歸檔和截取審計表。
audit_file_dest:Audit_trail=OS時 文件位置
1.語句審計
所有類型的審計都使用audit命令來打開審計,使用noaudit命令來關閉審計。對於語句審計,audit命令的格式看起來如下所示:
AUDIT sql_statement_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
|
sql_statement_clause包含很多條不同的信息,例如希望審計的SQL語句類型以及審計什 么人。
此外,希望在每次動作發生時都對其進行審計(by access)或者只審計一次(by session)。默認是by session。
有時希望審計成功的動作:沒有生成錯誤消息的語句。對於這些語句,添加whenever successful。而有時只關心使用審計語句的命令是否失敗,失敗原因是權限違犯、用完表空間中的空間還是語法錯誤。對於這些情況,使用 whenever not successful。
對於大多數類別的審計方法,如果確實希望審計所有類型的表訪問或某個用戶的任何權限,則可以指定all而不是單個的語句類型或對象。
表1列出了可以審計的語句類型,並且在每個類別中包含了相關語句的簡要描述。如果指定all,則審計該列表中的任何語句。然而,表2中的語句類型在啟用審計時不屬於all類別;必須在audit命令中顯式地指定它們。
表1 包括在ALL類別中的可審計語句
| 語 句 選 項 |
SQL操作 |
| ALTER SYSTEM |
所有ALTER SYSTEM選項,例如,動態改變實例參數,切換到下一個日志文件組,以及終止用戶會話 |
| CLUSTER |
CREATE、ALTER、DROP或TRUNCATE集群 |
| CONTEXT |
CREATE CONTEXT或DROP CONTEXT |
| DATABASE LINK |
CREATE或DROP數據庫鏈接 |
| DIMENSION |
CREATE、ALTER或DROP維數 |
| DIRECTORY |
CREATE或DROP目錄 |
| INDEX |
CREATE、ALTER或DROP索引 |
| MATERIALIZED VIEW |
CREATE、ALTER或DROP物化視圖 |
| NOT EXISTS |
由於不存在的引用對象而造成的SQL語句的失敗 |
| PROCEDURE |
CREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE |
| PROFILE |
CREATE、ALTER或DROP配置文件 |
| PUBLIC DATABASE LINK |
CREATE或DROP公有數據庫鏈接 |
| PUBLIC SYNONYM |
CREATE或DROP公有同義詞 |
| ROLE |
CREATE、ALTER、DROP或SET角色 |
| ROLLBACK SEGMENT |
CREATE、ALTER或DROP回滾段 |
| SEQUENCE |
CREATE或DROP序列 |
| SESSION |
登錄和退出 |
| SYNONYM |
CREATE或DROP同義詞 |
| SYSTEM AUDIT |
系統權限的AUDIT或NOAUDIT |
| SYSTEM GRANT |
GRANT或REVOKE系統權限和角色 |
| TABLE |
CREATE、DROP或TRUNCATE表 |
| TABLESPACE |
CREATE、ALTER或DROP表空間 |
| TRIGGER |
CREATE、ALTER(啟用/禁用)、DROP觸發器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE |
| TYPE |
CREATE、ALTER和DROP類型以及類型主體 |
| USER |
CREATE、ALTER或DROP用戶 |
| VIEW |
CREATE或DROP視圖 |
表2 顯式指定的語句類型
| 語 句 選 項 |
SQL 操 作 |
| ALTER SEQUENCE |
任何ALTER SEQUENCE命令 |
| ALTER TABLE |
任何ALTER TABLE命令 |
| COMMENT TABLE |
添加注釋到表、視圖、物化視圖或它們中的任何列 |
| DELETE TABLE |
刪除表或視圖中的行 |
| EXECUTE PROCEDURE |
執行程序包中的過程、函數或任何變量或游標 |
| GRANT DIRECTORY |
GRANT或REVOKE DIRECTORY對象上的權限 |
| GRANT PROCEDURE |
GRANT或REVOKE過程、函數或程序包上的權限 |
| GRANT SEQUENCE |
GRANT或REVOKE序列上的權限 |
| GRANT TABLE |
GRANT或REVOKE表、視圖或物化視圖上的權限 |
| GRANT TYPE |
GRANT或REVOKE TYPE上的權限 |
| INSERT TABLE |
INSERT INTO表或視圖 |
| LOCK TABLE |
表或視圖上的LOCK TABLE命令 |
| SELECT SEQUENCE |
引用序列的CURRVAL或NEXTVAL的任何命令 |
| SELECT TABLE |
SELECT FROM表、視圖或物化視圖 |
| UPDATE TABLE |
在表或視圖上執行UPDATE |
一些示例可以幫助讀者更清楚地了解所有這些選項。在示例數據庫中,用戶KSHELTON具有HR模式和其他模式中所有表上的權限。允許 KSHELTON創建其中一些表上的索引,但如果有一些與執行計划改動相關的性能問題,則需要知道何時創建這些索引。可以使用如下命令審計 KSHELTON創建的索引:
SQL> audit index by kshelton; Audit succeeded. |
后面的某一天,KSHELTON在HR.JOBS表上創建了一個索引:
SQL> create index job_title_idx on hr.jobs(job_title); Index created. |
檢查數據字典視圖DBA_AUDIT_TRAIL中的審計跟蹤,可以看到KSHELTON實際上在8月12日的5:15 P.M.創建了索引:
SQL> select username, to_char(timestamp,'MM/DD/YY HH24:MI') Timestamp, 2 obj_name, action_name, sql_text from dba_audit_trail 3 where username = 'KSHELTON'; USERNAME TIMESTAMP OBJ_NAME ACTION_NAME SQL_TEXT --------- -------------- -------------- -------------- ---------------- KSHELTON 08/12/07 17:15 JOB_TITLE_IDX CREATE INDEX create index hr. job_title_idx on hr.jobs(job_title) 1 row selected. |
注意:
從Oracle Database 11g開始,只有在初始參數AUDIT_TRAIL被設置為DB_EXTENDED時,才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默認情況下,AUDIT_TRAIL的值是DB。
為了關閉HR.JOBS表上KSHELTON的審計,可以使用noaudit命令,如下所示:
SQL> noaudit index by kshelton; Noaudit succeeded. |
也可能希望按常規方式審計成功的和不成功的登錄,這需要兩個audit命令:
SQL> audit session whenever successful; Audit succeeded. SQL> audit session whenever not successful; Audit succeeded. |
2.權限審計
審計系統權限具有與語句審計相同的基本語法,但審計系統權限是在sql_statement_clause中,而不是在語句中,指定系統權限。
例如,可能希望將ALTER TABLESPACE權限授予所有的DBA,但希望在發生這種情況時生成審計記錄。啟用對這種權限的審計的命令看起來類似於語句審計:
SQL> audit alter tablespace by access whenever successful; Audit succeeded. |
每次成功使用ALTER TABLESPACE權限時,都會將一行內容添加到SYS.AUD$。
使用SYSDBA和SYSOPER權限或者以SYS用戶連接到數據庫的系統管理員可以利用特殊的審計。為了啟用這種額外的審計級別,可以設置初始參數AUDIT_SYS_OPERATIONS為TRUE。這種審計記錄發送到與操作系統審計記錄相同的位置。因此,這個位置是和操作系統相關的。當使用其中一種權限時執行的所有SQL語句,以及作為用戶SYS執行的任何SQL語句,都會發送到操作系統審計位置。
模式對象審計
審計對各種模式對象的訪問看起來類似於語句審計和權限審計:
AUDIT schema_object_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;
|
schema_object_clause指定對象訪問的類型以及訪問的對象。可以審計特定對象上14種不同的操作類型,下表中列出了這些操作。
| 對 象 選 項 |
說 明 |
| ALTER |
改變表、序列或物化視圖 |
| AUDIT |
審計任何對象上的命令 |
| COMMENT |
添加注釋到表、視圖或物化視圖 |
| DELETE |
從表、視圖或物化視圖中刪除行 |
| EXECUTE |
執行過程、函數或程序包 |
| FLASHBACK |
執行表或視圖上的閃回操作 |
| GRANT |
授予任何類型對象上的權限 |
| INDEX |
創建表或物化視圖上的索引 |
| INSERT |
將行插入表、視圖或物化視圖中 |
| LOCK |
鎖定表、視圖或物化視圖 |
| READ |
對DIRECTORY對象的內容執行讀操作 |
| RENAME |
重命名表、視圖或過程 |
| SELECT |
從表、視圖、序列或物化視圖中選擇行 |
| UPDATE |
更新表、視圖或物化視圖 |
如果希望審計HR.JOBS表上的所有insert和update命令,而不管誰正在進行更新,則每次該動作發生時,都可以使用如下所示的audit命令:
SQL> audit insert, update on hr.jobs by access whenever successful; Audit successful. |
用戶KSHELTON決定向HR.JOBS表添加兩個新行:
SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2 values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
1 row created. SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2 values ('OE_VLD','Order Entry CC Validation', 5500, 20000);
1 row created. |
查看DBA_AUDIT_TRAIL視圖,可以看到KSHELTON會話中的兩個insert命令:
USERNAME TIMESTAMP OWNER OBJ_NAME ACTION_NAME
SQL_TEXT
---------- -------------- -------- ---------- ---------------
---------------------------------------------------------------
KSHELTON 08/12/07 22:54 HR JOBS INSERT
insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
KSHELTON 08/12/07 22:53 HR JOBS INSERT
insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('OE_VLD','Order Entry CC Validation', 5500, 20000);
KSHELTON 08/12/07 22:51 LOGON 3 rows selected. |
4.細粒度的審計
從Oracle9i開始,通過引入細粒度的對象審計,或稱為FGA,審計變得更為關注某個方面,並且更為精確。由稱為DBMS_FGA的PL/SQL程序包實現FGA。
使用標准的審計,可以輕松發現訪問了哪些對象以及由誰訪問,但無法知道訪問了哪些行或列。細粒度的審計可解決這個問題,它不僅為需要訪問的行指定謂詞(或where子句),還指定了表中訪問的列。通過只在訪問某些行和列時審計對表的訪問,可以極大地減少審計表條目的數量。
程序包DBMS_FGA具有4個過程:
| ADD_POLICY |
添加使用謂詞和審計列的審計策略 |
| DROP_POLICY |
刪除審計策略 |
| DISABLE_POLICY |
禁用審計策略,但保留與表或視圖關聯的策略 |
| ENABLE_POLICY |
啟用策略 |
用戶TAMARA通常每天訪問HR.EMPLOYEES表,查找雇員的電子郵件地址。系統管理員懷疑TAMARA正在查看經理們的薪水信息,因此他們建立一個FGA策略,用於審計任何經理對SALARY列的任何訪問:
begin dbms_fga.add_policy( object_schema => 'HR', object_name => 'EMPLOYEES', policy_name => 'SAL_SELECT_AUDIT', audit_condition => 'instr(job_id,''_MAN'') > 0', audit_column => 'SALARY' ); end; |
可以使用數據字典視圖DBA_FGA_AUDIT_TRAIL訪問細粒度審計的審計記錄。如果一般需要查看標准的審計行和細粒度的審計行,則數據字典視圖DBA_COMMON_AUDIT_TRAIL結合了這兩種審計類型中的行。
繼續看示例,用戶TAMARA運行了如下兩個SQL查詢:
SQL> select employee_id, first_name, last_name, email from hr.employees 2 where employee_id = 114; EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL ----------- ------------------ --------------------- -------------- 114 Den Raphaely DRAPHEAL 1 row selected. SQL> select employee_id, first_name, last_name, salary from hr.employees 2 where employee_id = 114; EMPLOYEE_ID FIRST_NAME LAST_NAME SALARY ----------- ------------------ ----------------------- ---------- 114 Den Raphaely 11000 1 row selected. |
第一個查詢訪問經理信息,但沒有訪問SALARY列。第二個查詢與第一個查詢相同,但是訪問了SALARY列,因此觸發了FGA策略,從而在審計跟蹤中生成了一行:
SQL> select to_char(timestamp,'mm/dd/yy hh24:mi') timestamp, 2 object_schema, object_name, policy_name, statement_type 3 from dba_fga_audit_trail 4 where db_user = 'TAMARA'; TIMESTAMP OBJECT_SCHEMA OBJECT_NAME POLICY_NAME STATEMENT_TYPE -------------- ------------- ------------- ---------------- -------------- 08/12/07 18:07 HR EMPLOYEES SAL_SELECT_AUDIT SELECT 1 row selected. |
因為在本章前面的VPD示例中建立了細粒度的訪問控制來阻止對SALARY列的未授權訪問,因此需要加倍檢查策略函數,確保仍然正確限制了SALARY信息。細粒度的審計以及標准審計是確保首先正確建立授權策略的好方法。
5.與審計相關的數據字典視圖
下表包含了與審計相關的數據字典視圖。
| 數據字典視圖 |
說 明 |
| AUDIT_ACTIONS |
包含審計跟蹤動作類型代碼的描述,例如INSERT、DROP VIEW、DELETE、LOGON和LOCK |
| DBA_AUDIT_OBJECT |
與數據庫中對象相關的審計跟蹤記錄 |
| DBA_AUDIT_POLICIES |
數據庫中的細粒度審計策略 |
| DBA_AUDIT_SESSION |
與CONNECT和DISCONNECT相關的所有審計跟蹤記錄 |
| DBA_AUDIT_STATEMENT |
與GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相關的審計跟蹤條目 |
| DBA_AUDIT_TRAIL |
包含標准審計跟蹤條目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已連接用戶的審計行 |
| DBA_FGA_AUDIT_TRAIL |
細粒度審計策略的審計跟蹤條目 |
(續表)
| 數據字典視圖 |
說 明 |
| DBA_COMMON_AUDIT_TRAIL |
將標准的審計行和細粒度的審計行結合在一個視圖中 |
| DBA_OBJ_AUDIT_OPTS |
對數據庫對象生效的審計選項 |
| DBA_PRIV_AUDIT_OPTS |
對系統權限生效的審計選項 |
| DBA_STMT_AUDIT_OPTS |
對語句生效的審計選項 |
6.保護審計跟蹤
審計跟蹤自身需要受到保護,特別是在非系統用戶必須訪問表SYS.AUD$時。內置的角色DELETE_ANY_CATALOG是非SYS用戶可以訪問審計跟蹤的一種方法(例如,歸檔和截取審計跟蹤,以確保它不會影響到SYS表空間中其他對象的空間需求)。
為了建立對審計跟蹤自身的審計,以SYSDBA身份連接到數據庫,並運行下面的命令:
SQL> audit all on sys.aud$ by access; Audit succeeded. |
現在,所有針對表SYS.AUD$的動作,包括select、insert、update和delete,都記錄在SYS.AUD$自身中。但是,您可能會問,如果某個人刪除了標識對表SYS.AUD$訪問的審計記錄,這時會發生什么?此時將刪除表中的行,但接着插入另一行,記錄行的刪除。因此,總是存在一些針對SYS.AUD$表的(有意的或偶然的)活動的證據。此外,如果將AUDIT_SYS _OPERATIONS設置為True,使用as sysdba、as sysoper或以SYS自身連接的任何會話將記錄到操作系統審計位置中,甚至Oracle DBA可能都無法訪問該位置。因此,有許多合適的安全措施,用於確保記錄數據庫中所有權限的活動,以及隱藏該活動的任何嘗試。
7.啟用增強的審計
從Oracle Database 11g開始,數據庫配置助手(Database Configuration Assistant,DBCA)很容易啟用默認的(增強的)審計。雖然記錄審計信息有一些系統開銷,但兼容性需求(例如,Sarbanes-Oxley法案中規定的兼容性需求)要求嚴格監控所有業務操作,包括數據庫中與安全相關的操作。
可以在創建數據庫時或在數據庫已經創建之后使用DBCA配置默認審計。如果已經改變了很多審計設置,並想要將審計選項重置為基線值,則在數據庫已創建之后使用DBCA配置默認審計就非常有用。
除將初始參數AUDIT_TRAIL的值設置為DB外,默認審計設置還審計audit role命令本身。另外,在Audited Privileges選項卡的Oracle Enterprise Manager Audit Settings頁面中,可以查看默認的審計權限。
補充說明:
8、實例講解
8.1、激活審計
審計相關的表安裝
SQLPLUS> connect / AS SYSDBA
SQLPLUS> select * from sys.aud$; --沒有記錄返回
SQLPLUS> select * from dba_audit_trail; - 沒有記錄返回
如果做上述查詢的時候發現表不存在,說明審計相關的表還沒有安裝,需要安裝。
SQLPLUS> connect / as sysdba
SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql
審計表安裝在SYSTEM表空間。所以要確保SYSTEM表空間又足夠的空間存放審計信息。
安裝后要重啟數據庫
將審計相關的表移動到其他表空間
由於AUD$表等審計相關的表存放在SYSTEM表空間,因此為了不影響系統的性能,保護SYSTEM表空間,最好把AUD$移動到其他的表空間上。可以使用下面的語句來進行移動:
sql>connect / as sysdba;
sql>alter table aud$ move tablespace <new tablespace>;
sql>alter index I_aud1 rebuild online tablespace <new tablespace>;
SQL> alter table audit$ move tablespace <new tablespace>;
SQL> alter index i_audit rebuild online tablespace <new tablespace>;
SQL> alter table audit_actions move tablespace <new tablespace>;
SQL> alter index i_audit_actions rebuild online tablespace <new tablespace>;
SQL> conn /as sysdba
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE
SQL> alter system set audit_sys_operations=TRUE scope=spfile; --審計管理用戶(以sysdba/sysoper角色登陸)
SQL> alter system set audit_trail=db,extended scope=spfile;
SQL> startup force;
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB, EXTENDED
8.2、開始審計
SQL> conn /as sysdba
SQL> audit all on t_test;
SQL> conn u_test
SQL> select * from t_test;
SQL> insert into u_test.t_test (c2,c5) values ('test1','2');
SQL> commit;
SQL> delete from u_test.t_test;
SQL> commit;
SQL> conn /as sysdba
SQL> col DEST_NAME format a30
col OS_USERNAME format a15
col USERNAME format a15
col USERHOST format a15
col TERMINAL format a15
col OBJ_NAME format a30
col SQL_TEXT format a60
SQL> select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,sessionid,os_process,sql_text from dba_audit_trail;
sql> audit select table by u_test by access;
如果在命令后面添加by user則只對user的操作進行審計,如果省去by用戶,則對系統中所有的用戶進行審計(不包含sys用戶).
例:
AUDIT DELETE ANY TABLE; --審計刪除表的操作
AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只審計刪除失敗的情況
AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只審計刪除成功的情況
AUDIT DELETE,UPDATE,INSERT ON user.table by test; --審計test用戶對表user.table的delete,update,insert操作
8.3、撤銷審計
SQL> noaudit all on t_test;
9、審計語句
多層環境下的審計:appserve-應用服務器,jackson-client
AUDIT SELECT TABLE BY appserve ON BEHALF OF jackson;
審計連接或斷開連接:
AUDIT SESSION;
AUDIT SESSION BY jeff, lori; -- 指定用戶
審計權限(使用該權限才能執行的操作):
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
AUDIT DELETE ANY TABLE;
AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;
對象審計:
AUDIT DELETE ON jeff.emp;
AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;
取消審計:
NOAUDIT session;
NOAUDIT session BY jeff, lori;
NOAUDIT DELETE ANY TABLE;
NOAUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE,EXECUTE PROCEDURE;
NOAUDIT ALL; -- 取消所有statement審計
NOAUDIT ALL PRIVILEGES; -- 取消所有權限審計
NOAUDIT ALL ON DEFAULT; -- 取消所有對象審計
10、清除審計信息
DELETE FROM SYS.AUD$;
DELETE FROM SYS.AUD$ WHERE obj$name='EMP';
11、審計視圖
STMT_AUDIT_OPTION_MAP -- 審計選項類型代碼
AUDIT_ACTIONS -- action代碼
ALL_DEF_AUDIT_OPTS -- 對象創建時默認的對象審計選項
DBA_STMT_AUDIT_OPTS -- 當前數據庫系統審計選項
DBA_PRIV_AUDIT_OPTS -- 權限審計選項
DBA_OBJ_AUDIT_OPTS
USER_OBJ_AUDIT_OPTS -- 對象審計選項
DBA_AUDIT_TRAIL
USER_AUDIT_TRAIL -- 審計記錄
DBA_AUDIT_OBJECT
USER_AUDIT_OBJECT -- 審計對象列表
DBA_AUDIT_SESSION
USER_AUDIT_SESSION -- session審計
DBA_AUDIT_STATEMENT
USER_AUDIT_STATEMENT -- 語句審計
DBA_AUDIT_EXISTS -- 使用BY AUDIT NOT EXISTS選項的審計
DBA_AUDIT_POLICIES -- 審計POLICIES
DBA_COMMON_AUDIT_TRAIL -- 標准審計+精細審計
12、將審計結果表從system表空間里移動到別的表空間上
實際上sys.aud$表上包含了兩個lob字段,並不是簡單的move table就可以。
下面是具體的過程:
alter table sys.aud$ move tablespace users;
alter table sys.aud$ move lob(sqlbind) store as( tablespace USERS);
alter table sys.aud$ move lob(SQLTEXT) store as( tablespace USERS);
alter index sys.I_AUD1 rebuild tablespace users;
