談一談Oracle11gR2的審計管理
目前成都創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設計、陸良網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。作者:趙全文 網(wǎng)名:guestart
在Oracle數(shù)據(jù)庫的安全特性當中,審計被作為特別重要的一個方面。數(shù)據(jù)庫的審計功能主要是用來審計各種類型的DDL和DML語句,而審計管理作為一項新特性被引進到Oracle的11g R1版本當中,此時它的審計功能并不強大而且還有許多bug,然而到了11gR2時,已經(jīng)修復了很多bug及它的審計功能進一步增強。
今天我和大家分享一下,在Oracle 11gR2的版本中,有關審計的一些特性。出于美國安全法,Oracle在11g 的版本對審計管理的策略有所改變,初始化參數(shù)AUDIT_TRAIL的默認值為'DB',也就是說把所有的審計數(shù)據(jù)都存放到AUD$表,而這個表又默認是在SYSTEM的表空間里。
當我們在生產(chǎn)環(huán)境中部署一套Oracle數(shù)據(jù)庫以后,默認審計功能是開啟的,業(yè)務剛上線那段時間,數(shù)據(jù)量不大時,SYSTEM表空間的容量很寬裕,并沒有什么壓力。當業(yè)務運行了一段時間,突然有一天,前端應用就會反映說,數(shù)據(jù)庫特別慢。這時我們DBA對數(shù)據(jù)庫進行各種檢查,就會發(fā)現(xiàn)SYSTEM表空間的已用空間百分比為99.97%,這一點毫不夸張,我就親身經(jīng)歷過。我們說這是事后救火,其實我們完全可以在上線前,把AUD$表遷移到其它的專門存放審計數(shù)據(jù)的表空間,在業(yè)務上線并運行一段時間之后,評估一下審計數(shù)據(jù)的數(shù)據(jù)量,然后設置審計數(shù)據(jù)的維護策略。
下面,我們采取三種方法對Oracle數(shù)據(jù)庫的審計進行設置。嚴格的來說,是兩種方法,第一種更為粗暴,直接關閉審計功能,就是將初始化參數(shù)AUDIT_TRAIL的值設為'NONE',然后重啟數(shù)據(jù)庫使之生效;第二種和第三種是針對開啟數(shù)據(jù)庫審計功能的維護管理。在生產(chǎn)環(huán)境中,不建議使用第一種,因為關閉審計以后,數(shù)據(jù)庫出現(xiàn)安全隱患以后不利于排查分析。為了大家有所了解,我也一并演示操作。
首先,查看數(shù)據(jù)庫的版本,我所演示的環(huán)境為Oracle 11.2.0.4.0。
第一種方法,關閉審計功能。
第二種方法,把SYSTEM表空間里的AUD$表遷移到其它的表空間,以減輕SYSTEM表空間的壓力。
(1)查詢AUD$表所在的表空間
(2)查詢AUD$表的數(shù)據(jù)量有多少,發(fā)現(xiàn)竟然有80多G
(3)創(chuàng)建專門存放AUD$表的單獨的表空間AUDIT_TBS
(4)遷移AUD$表到新的表空間AUDIT_TBS
使用Oracle自帶的包DBMS_AUDIT_MGMT中的存儲過程SET_AUDIT_TRAIL_LOCATION來實現(xiàn),該存儲過程接受2個參數(shù),順序依次是AUDIT_TRAIL_TYPE和AUDIT_TRAIL_LOCATION_VALUE,參見官方文檔的如下截圖,
其中參數(shù)AUDIT_TRAIL_TYPE有以下幾種取值,見官方文檔的如下截圖,
各種取值的中文解釋如下:
AUDIT_TRAIL_ALL 所有的審計類型,包括標準數(shù)據(jù)庫審計、細粒度審計、操作系統(tǒng)審計和XML文件審計
AUDIT_TRAIL_AUD_STD 標準數(shù)據(jù)庫審計
AUDIT_TRAIL_DB_STD 標準數(shù)據(jù)庫審計和細粒度審計
AUDIT_TRAIL_FGA_STD 細粒度審計
AUDIT_TRAIL_FILES 操作系統(tǒng)和XML文件審計
AUDIT_TRAIL_OS 操作系統(tǒng)審計,審計數(shù)據(jù)存放在操作系統(tǒng)的文件里
AUDIT_TRAIL_XML XML文件審計,審計數(shù)據(jù)存放在XML文件里
在這里,我們使用標準數(shù)據(jù)庫審計,所以使用參數(shù)AUDIT_TRAIL_AUD_STD。
參數(shù)AUDIT_TRAIL_LOCATION_TYPE的取值是要遷移到的表空間的名字AUDIT_TBS,要執(zhí)行的存儲過程如下圖所示,
從中發(fā)現(xiàn),執(zhí)行了將近一個小時,才遷移完成。
此時,AUDIT_TBS表空間已有數(shù)據(jù),SYSTEM表空間已經(jīng)釋放,壓力減輕。見下圖所示,
第三種方法,上面雖然減輕了SYSTEM表空間的壓力,但是如果不對審計數(shù)據(jù)進行定時清除和歸檔這種維護管理的話,新的表空間的容量也會有不足的時候,因此也需要不定期的擴充容量才可以。顯然,這也不是個完美的解決辦法。下面給審計設置維護策略, 6 / 12
(1)查詢AUD$表的數(shù)據(jù)開始生成的時間戳,現(xiàn)在是2017年2月8日,說明審計數(shù)據(jù)已保留了將近8個月。
(2)用Oracle自帶的包DBMS_AUDIT_MGMT中的存儲過程SET_AUDIT_TRAIL_PROPERTY設置審計的維護屬性,即每清除多少條數(shù)據(jù)提交一次。該存儲過程接受3個參數(shù),順序依次是AUDIT_TRAIL_TYPE、AUDIT_TRAIL_PROPERTY和AUDIT_TRAIL_PROPERTY_VALUE。
其中參數(shù)AUDIT_TRAIL_TYPE的取值在第二種方法已說明,參數(shù)AUDIT_TRAIL_PROPERTY和AUDIT_TRAIL_PROPERTY_VALUE的取值見下面的官方文檔說明,
這里,我們使用參數(shù)AUDIT_TRAIL_TYPE的取值為AUDIT_TRAIL_AUD_STD,參數(shù)AUDIT_TRAIL_PROPERTY的取值為DB_DELETE_BATCH_SIZE,參數(shù)AUDIT_TRAIL_PROPERTY_VALUE的取值為10000。那么執(zhí)行下面的存儲過程,
(3)用Oracle自帶的包DBMS_AUDIT_MGMT中的存儲過程INIT_CLEANUP設置審計數(shù)據(jù)保留的天數(shù),該存儲過程接受2個參數(shù),順序依次是AUDIT_TRAIL_TYPE和DEFAULT_CLEANUP_INTERVAL。見官方文檔的說明,其中參數(shù)DEFAULT_CLEANUP_INTERVAL的取值為1至999,單位為小時。
用Oracle自帶的包DBMS_AUDIT_MGMT中的存儲過程SET_LAST_ARCHIVE_TIMESTAMP設置上次歸檔審計記錄的時間戳,該存儲過程接受2個參數(shù),順序依次是AUDIT_TRAIL_TYPE、LAST_ARCHIVE_TIME和RAC_INSTANCE_NUMBER。見官文檔的說明,參數(shù)RAC_INSTANCE_NUMBER取默認值NULL,可以不寫。
這里,我們設置審計數(shù)據(jù)保留的天數(shù)為30天,即720小時,上次歸檔審計記錄的時間戳為30天之前。那么執(zhí)行下面的存儲過程,
(4)用Oracle自帶的包DBMS_AUDIT_MGMT中的存儲過程CREATE_PURGE_JOB設置每隔多長時間清除審計數(shù)據(jù)的JOB,該存儲過程接受4個參數(shù),順序依次是AUDIT_TRAIL_TYPE、AUDIT_TRAIL_PURGE_INTERVAL、AUDIT_TRAIL_PURGE_NAME和USE_LAST_ARCH_TIMESTAMP。見官方文檔的說明,
這里,我們每隔7天,即168小時清除一次審計數(shù)據(jù),那么設參數(shù)AUDIT_TRAIL_PURGE_INTERVAL的值為168,設參數(shù)USE_LAST_ARCH_TIMESTAMP的值為TRUE(也是默認值)。那么執(zhí)行下面的存儲過程,
同時,在EMCC 12C的監(jiān)控界面下已經(jīng)看到一個名叫“PURGE_AUD_STD”的JOB在運行,還有相應的SQL也在運行。見下圖,
由于上次以來沒有進行審計清理,現(xiàn)在保留了近8個月的數(shù)據(jù),所以現(xiàn)在一次清理,只保留30天的數(shù)據(jù)會稍顯費時。不過執(zhí)行完這次JOB,以后再清理歷史數(shù)據(jù)就不費吹灰之力了。
上面就把三種維護審計的方法都介紹完了,我們演示的只是將審計數(shù)據(jù)保存在DB里,其實還可以保存在OS和XML里,不過我不建議這樣做,按照官方文檔來說,保存在DB里由Oracle進行維護會減少和OS通信的IO操作。
總結(jié):
1.直接關閉審計,修改初始化參數(shù)AUDIT_TRAIL的值為NONE,并重啟數(shù)據(jù)庫生效;
2.將SYSTEM表空間中的AUD$表遷移到其它的表空間,以減輕SYSTEM表空間的壓力;
3.在第2種方法的基礎上,設置審計數(shù)據(jù)保留天數(shù)并定時清除過期的審計數(shù)據(jù)。
另外,本文在編寫過程中,參考了以下網(wǎng)址,特別說明
官方文檔 https://docs.oracle.com/cd/E18283_01/appdev.112/e16760/d_audit_mgmt.htm#BABDAHBG
oraclewiki http://www.oracle-wiki.net/startdocshowtomanageaudit
Laurent Leturgez https://laurent-leturgez.com/2011/06/09/managing-database-audit-trail-in-oracle-11gr2/
Suresh Karthikeyan https://www.pythian.com/blog/oracle-database-script-to-purge-aud-table-using-dbms_audit_mgmt-package/
如果您覺得此篇文章對您有幫助,歡迎關注微信公眾號:guestart的DBA學習筆記,您的支持是對我大的鼓勵!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞標題:談一談Oracle11gR2的審計管理-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article46/csdohg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、手機網(wǎng)站建設、軟件開發(fā)、商城網(wǎng)站、小程序開發(fā)、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)