程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle審計詳解

oracle審計詳解

編輯:Oracle教程

oracle審計詳解


審 計 類 型 說 明 語句審計 按照語句類型審計SQL語句,而不論訪問何種特定的模式對象。也可以在數據庫中指定一個或多個用戶,針對特定的語句審計這些用戶 權限審計 審計系統權限,例如CREATE TABLE或ALTER INDEX。和語句審計一樣,權限審計可以指定一個或多個特定的用戶作為審計的目標 模式對象審計 審計特定模式對象上運行的特定語句(例如,DEPARTMENTS表上的UPDATE語句)。模式對象審計總是應用於數據庫中的所有用戶 細粒度的審計 根據訪問對象的內容來審計表訪問和權限。使用程序包DBMS_FGA來建立特定表上的策略 Oracle使用大量不同的審計方法來監控使用何種權限,以及訪問哪些對象。審計不會防止使用這些權限,但可以提供有用的信息,用於揭示權限的濫用和誤用。
下表中總結了Oracle數據庫中不同類型的審計。
下面幾節介紹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:

none

Disables database auditing.

os

Enables database auditing and directs all audit records to the operating system's audit trail.

db

Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table).

db,extended

Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table). In addition, populates the SQLBIND and SQLTEXT CLOB columns of the SYS.AUD$ table.

xml

Enables database auditing and writes all audit records to XML format OS files.

xml,extended

Enables 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 ;

sql>alter index I_aud1 rebuild online tablespace ;

SQL> alter table audit$ move tablespace ;

SQL> alter index i_audit rebuild online tablespace ;

SQL> alter table audit_actions move tablespace ;

SQL> alter index i_audit_actions rebuild online 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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved