學習Oracle的審計(Auditing)

來源:互聯網
上載者:User

標籤:oracle審計 audit

審計(Audit)用於監視使用者所執行的資料庫操作,審計記錄可存在資料字典表(稱為審計記錄:儲存在system資料表空間中的 SYS.AUD$ 表中,可通過視圖dba_audit_trail查看)或作業系統審計記錄中(audit_file_dest參數決定)。預設情況下審計是沒有開啟的。

1、審計的類型有四種:

  • Statement Auditing(語句審計):在語句層級進行審計,如審計執行SELECT TABLE的語句,而不針對某一單獨的對象。

  • Privilege Auditing(許可權審計):審計某一系統許可權的使用方式,如果審計在建立表時用到的CREATE ANY TABLE許可權。

  • Schema Object Auditing(對象審計):審計對指定對象上的操作,如審計對錶scott.emp的INSERT操作。

  • Fine-Grained Auditing(細粒度審計):用於指定更細粒度的審計,用DBMS_FGA包來實現。

2、相關參數:

AUDIT_TRAIL參數

這參數決定Database Audit的開啟和關閉。可以被賦與如下值

  • DB,啟用Database Audit,並把審計記錄記錄到資料庫中的SYS.AUD$

  • XML,啟用Database Audit,並把審計記錄在檔案系統以XML檔案的開始存放

  • DB,EXTENDED,具有與DB一樣的功能,並在必要時在SYS.AUD$中記錄SQL bind and SQL text CLOB-type columns。

  • XML,EXTENDED,具有與XML一樣的功能,並在可用時在XML檔案中記錄SQL bind and SQL text CLOB-type columns。

  • OS,啟用Database Audit,並把審計記錄記錄到作業系統的檔案中。

  • NONE,不啟用Database Audit,預設值。

AUDIT_FILE_DEST參數

如果AUDIT_TRAIL=OS,則審計記錄的檔案,存放在AUDIT_FILE_DEST指定的目錄中。

AUDIT_SYS_OPERATIONS參數

指定是否啟用對SYS使用者的審計。預設為FALSE,啟用設定為TRUE。記錄不存放在AUD$中,而是記錄在其它地方。如果是windows平台,audti trail會記錄在windows的事件管理中,如果是linux/unix平台則會記錄在audit_file_dest參數指定的檔案中。

3、啟用和停用Database Audit

使用ALTER SYSTEM語句設定AUDIT_TRAIL參數,這個參數不可線上修改,修改後需重庫資料庫執行個體生效。例句如下:

ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;

停用Database Audit使用如下語句,重啟資料庫生效

ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE;

4、啟用和停止審計功能的文法:

1)啟用審計使用AUDIT語句

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/92/4F/wKiom1j-EfDxoTsbAAGXMKVir5E923.png" title="1.png" alt="wKiom1j-EfDxoTsbAAGXMKVir5E923.png" />

2)停止審計功能

要停用審計功能把上面的AUDIT改為NOAUDIT。

在啟用審計功能前,必須先設定AUDIT_TRAIL參數為非NONE,否則資料庫不會進行審計。

5、使用審計功能的樣本

啟用Database Audit

[email protected]>alter system set audit_trail=DB scope=spfile;System altered.

1)Statement Auditing(語句審計)

審計由SCOTT使用者發出的所有SELECT TABLE

[email protected]>audit select table by scott;Audit succeeded.[email protected]>select * from dba_stmt_audit_opts;USER_NAME       PROXY_NAME      AUDIT_OPTION     SUCCESS    FAILURE------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------SCOTT      SELECT TABLE     BY SESSION     BY SESSION[email protected]>select count(*) from emp;  COUNT(*)----------14[email protected]>select timestamp,sql_text from dba_audit_trail;TIMESTAMP    SQL_TEXT------------------- --------------------------------------------------------------------------------2017-04-24 23:07:47 select count(*) from emp

2)Privilege Auditing(許可權審計)

審計所有系統許可權

[email protected]>audit all privileges;Audit succeeded.[email protected]>select * from dba_priv_audit_opts;USER_NAME       PROXY_NAME      PRIVILEGE      SUCCESS    FAILURE------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------      FLASHBACK ARCHIVE ADMINISTER   BY ACCESS    BY ACCESS      CREATE SESSION                 BY ACCESS    BY ACCESS......[[email protected] ~]$ sqlplus scott/tiger......[email protected]>select username,timestamp,priv_used from dba_audit_trail where priv_used is not null;USERNAME       TIMESTAMP   PRIV_USED------------------------------ ------------------- ------------------------------------------------------------------------------------------------------------------------SCOTT       2017-04-24 23:18:02 CREATE SESSION

3)Schema Object Auditing(對象審計)

審計對SCOTT.EMP表的select操作

[email protected]>audit select on scott.emp;Audit succeeded.[email protected]>select * from dba_obj_audit_opts;OWNER   OBJECT_NAM OBJECT_TYPE     ALT   AUD COM   DEL   GRA   IND INS   LOC   REN   SEL UPD   REF   EXE   CRE REA   WRI   FBK---------- ---------- ------------------------------ ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----SCOTT   EMP      TABLE     -/-   -/- -/-   -/-   -/-   -/- -/-   -/-   -/-   S/S -/-   -/-   -/-   -/- -/-   -/-   -/-[email protected]>select ename from emp;ENAME------------------------------SMITHALLEN......[email protected]>select timestamp,sql_text from dba_audit_trail;TIMESTAMP    SQL_TEXT------------------- --------------------------------------------------------------------------------2017-04-24 23:24:28 select ename from emp

AUD$位於SYSTEM資料表空間,基於Oracle的穩定性及效能考慮,可以將審計相關的表移動到其他資料表空間。

alter table audit$ move tablespace <tablespace_name>;
alter index i_audit rebuild online tablespace <tablespace_name>;
alter table audit_actions move tablespace <tablespace_name>;
alter index i_audit_actions rebuild online tablespace <tablespace_name>;


官方文檔:http://docs.oracle.com/cd/B19306_01/network.102/b14266/auditing.htm#CHDJBDHJ

http://docs.oracle.com/cd/B19306_01/network.102/b14266/cfgaudit.htm#BABCFIHB

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4007.htm#i2059073

參考:http://blog.itpub.net/9399028/viewspace-712457/

本文出自 “DBA Fighting!” 部落格,請務必保留此出處http://hbxztc.blog.51cto.com/1587495/1919030

學習Oracle的審計(Auditing)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.