隨著計(jì)算機(jī)的普及以及網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)庫已經(jīng)不再僅僅是那些程序員所專有的話題。而Oracle數(shù)據(jù)庫更是憑借其性能卓越,操作方便靈活的特點(diǎn),在數(shù)據(jù)庫的市場中已經(jīng)占據(jù)了一席之地。但是同樣隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,數(shù)據(jù)信息的不斷增加,數(shù)據(jù)安全已經(jīng)不再是以前的“老生長談”,也更不是以前書本上那些“可望不可及”的條條框框。
或許很久以前,大家都覺得Oracle數(shù)據(jù)庫的安全并不存在隱患,因?yàn)镺racle公司在去年11月份開始促銷其數(shù)據(jù)庫軟件時提出的口號是“只有Oracle9i能夠做到絕對安全”。但是不管它這么說是為了促銷,還是為了擴(kuò)大知名度,總之伴去年12 月份,英國的安全專家 David Litchfield 發(fā)現(xiàn)的9iAS 中存在的程序錯誤導(dǎo)致的緩沖溢出漏洞以及后來,PenTest Limited 和 eEye Digital Security 各自提出了一個小的漏洞,所有使用Oracle公司產(chǎn)品的人都不由地緊張了原本松弛的大腦--這個對于用戶來說,畢竟關(guān)系到了自己的“身家性命”。
下面筆者將帶著大家走進(jìn)Oracle數(shù)據(jù)安全的世界。由于筆者水平有限,所以不足之處在所難免,望大家不吝賜教。
(一)Oracle數(shù)據(jù)庫的一些基本常識
這里僅僅是為了以后的安全奠定一些基礎(chǔ),因?yàn)槲覀兒竺嬉玫剿鼈?。呵呵~!
1.Oracle所包含的組件:
在 Oracle,數(shù)據(jù)庫是指整個 Oracle RDBMS 環(huán)境,它包括以下組件:
?Oracle 數(shù)據(jù)庫進(jìn)程和緩沖(實(shí)例)。
?SYSTEM 表空間包含一個集中系統(tǒng)類目,它可以由一個或多個數(shù)據(jù)文件構(gòu)成。
?其它由數(shù)據(jù)庫管理員 (DBA)(可選)定義的表空間,每個都由一個或多個數(shù)據(jù)文件構(gòu)成。
?兩個以上的聯(lián)機(jī)恢復(fù)日志。
?歸檔恢復(fù)日志(可選)。
?其它文件(控制文件、Init.ora、Config.ora 等)。
每個 Oracle 數(shù)據(jù)庫都在一個中央系統(tǒng)類目和數(shù)據(jù)字典上運(yùn)行,它位于SYSTEM 表空間。
2.關(guān)于“日志”
Oracle數(shù)據(jù)庫使用幾種結(jié)構(gòu)來保護(hù)數(shù)據(jù):數(shù)據(jù)庫后備、日志、回滾段和控制文件。下面我們將大體上了解一下作為主要結(jié)構(gòu)之一的“日志”:
每一個Oracle數(shù)據(jù)庫實(shí)例都提供日志,記錄數(shù)據(jù)庫中所作的全部修改。每一個運(yùn)行的Oracle數(shù)據(jù)庫實(shí)例相應(yīng)地有一個在線日志,它與Oracle后臺進(jìn)程LGWR一起工作,立即記錄該實(shí)例所作的全部修改。歸檔(離線)日志是可選擇的,一個Oracle數(shù)據(jù)庫實(shí)例一旦在線日志填滿后,可形成在線日志歸檔文件。歸檔的在線日志文件被唯一標(biāo)識并合并成歸檔日志。
?關(guān)于在線日志:一個Oracle數(shù)據(jù)庫的每一實(shí)例有一個相關(guān)聯(lián)的在線日志。一個在線日志由多個在線日志文件組成。在線日志文件(online redo log file)填入日志項(xiàng)(redo entry),日志項(xiàng)記錄的數(shù)據(jù)用于重構(gòu)對數(shù)據(jù)庫所作的全部修改。
?關(guān)于歸檔日志:Oracle要將填滿的在線日志文件組歸檔時,則要建立歸檔日志(archived redo log)。其對數(shù)據(jù)庫備份和恢復(fù)有下列用處:
<1>數(shù)據(jù)庫后備以及在線和歸檔日志文件,在操作系統(tǒng)和磁盤故障中可保證全部提交的事物可被恢復(fù)。
<2>在數(shù)據(jù)庫打開和正常系統(tǒng)使用下,如果歸檔日志是永久保存,在線后備可以進(jìn)行和使用。
數(shù)據(jù)庫可運(yùn)行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。數(shù)據(jù)庫在NOARCHIVELOG方式下使用時,不能進(jìn)行在線日志的歸檔。如果數(shù)據(jù)庫在ARCHIVELOG方式下運(yùn)行,可實(shí)施在線日志的歸檔。
3.物理和邏輯存儲結(jié)構(gòu):
Oracle RDBMS是由表空間組成的,而表空間又是由數(shù)據(jù)文件組成的。表空間數(shù)據(jù)文件被格式化為內(nèi)部的塊單位。塊的大小,是由DBA在Oracle第一次創(chuàng)建的時候設(shè)置的,可以在512到8192個字節(jié)的范圍內(nèi)變動。當(dāng)一個對象在Oracle表空間中創(chuàng)建的時候,用戶用叫做長度的單位(初始長度((initial extent)、下一個長度(next extent)、最小長度(min extents)、以及最大長度(max extents))來標(biāo)明該對象的空間大小。一個Oracle長度的大小可以變化,但是要包含一個由至少五個連續(xù)的塊構(gòu)成的鏈。
4.Oracle與Microsoft SQL Server比較下的聯(lián)網(wǎng)協(xié)議:
新聞熱點(diǎn)
疑難解答
圖片精選