文章詳情頁(yè)
Oracle數(shù)據(jù)庫(kù)的安全策略全面解析
瀏覽:5日期:2023-11-20 13:45:31
Oracle是關(guān)系型數(shù)據(jù)庫(kù)治理系統(tǒng),它功能強(qiáng)大、性能卓越,在當(dāng)今大型數(shù)據(jù)庫(kù)治理系統(tǒng)中占有重要地位。在我們開(kāi)發(fā)的一MIS系統(tǒng)中,選用了Oracle7.3數(shù)據(jù)庫(kù)。在正常情況下,Oracle數(shù)據(jù)庫(kù)會(huì)保證數(shù)據(jù)的安全、穩(wěn)定,為用戶提供正確的數(shù)據(jù),但由于計(jì)算機(jī)系統(tǒng)的故障(硬件故障、軟件故障、網(wǎng)絡(luò)故障和系統(tǒng)故障)影響數(shù)據(jù)庫(kù)系統(tǒng)的操作,影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)中全部或部分?jǐn)?shù)據(jù)丟失,整個(gè)系統(tǒng)都將處于癱瘓狀態(tài)。因此,如何保證Oracle數(shù)據(jù)庫(kù)的安全就成為整個(gè)MIS系統(tǒng)安全的重要組成部分。 Oracle數(shù)據(jù)庫(kù)的安全策略包括數(shù)據(jù)庫(kù)的備份和恢復(fù)、用戶角色治理. 一、數(shù)據(jù)庫(kù)備份所使用的結(jié)構(gòu) Oracle數(shù)據(jù)庫(kù)使用幾種結(jié)構(gòu)來(lái)保護(hù)數(shù)據(jù):數(shù)據(jù)庫(kù)后備、日志、回滾段和控制文件。 1.?dāng)?shù)據(jù)庫(kù)后備是由構(gòu)成Oracle數(shù)據(jù)庫(kù)的物理文件的操作系統(tǒng)后備所組成。當(dāng)介質(zhì)故障時(shí)進(jìn)行數(shù)據(jù)庫(kù)恢復(fù),利用后備文件恢復(fù)毀壞的數(shù)據(jù)文件或控制文件。 2.每一個(gè)Oracle數(shù)據(jù)庫(kù)實(shí)例都提供日志,記錄數(shù)據(jù)庫(kù)中所作的全部修改。每一個(gè)運(yùn)行的Oracle數(shù)據(jù)庫(kù)實(shí)例相應(yīng)地有一個(gè)在線日志,它與Oracle后臺(tái)進(jìn)程LGWR一起工作,立即記錄該實(shí)例所作的全部修改。歸檔(離線)日志是可選擇的,一個(gè)Oracle數(shù)據(jù)庫(kù)實(shí)例一旦在線日志填滿后,可形成在線日志歸檔文件。歸檔的在線日志文件被唯一標(biāo)識(shí)并合并成歸檔日志。 3.回滾段用于存儲(chǔ)正在進(jìn)行的事務(wù)(為未提交的事務(wù))所修改值的老值,該信息在數(shù)據(jù)庫(kù)恢復(fù)過(guò)程中用于撤消任何非提交的修改。 4.控制文件,一般用于存儲(chǔ)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)的狀態(tài)。控制文件中某些狀態(tài)信息在實(shí)例恢復(fù)和介質(zhì)恢復(fù)期間用于引導(dǎo)Oracle。 二、在線日志 一個(gè)Oracle數(shù)據(jù)庫(kù)的每一實(shí)例有一個(gè)相關(guān)聯(lián)的在線日志。一個(gè)在線日志由多個(gè)在線日志文件組成。在線日志文件(online redo log file)填入日志項(xiàng)(redo entry),日志項(xiàng)記錄的數(shù)據(jù)用于重構(gòu)對(duì)數(shù)據(jù)庫(kù)所作的全部修改。 三、歸檔日志 Oracle要將填滿的在線日志文件組歸檔時(shí),則要建立歸檔日志(archived redo log)。其對(duì)數(shù)據(jù)庫(kù)備份和恢復(fù)有下列用處: 1.?dāng)?shù)據(jù)庫(kù)后備以及在線和歸檔日志文件,在操作系統(tǒng)和磁盤故障中可保證全部提交的事物可被恢復(fù)。 2.在數(shù)據(jù)庫(kù)打開(kāi)和正常系統(tǒng)使用下,假如歸檔日志是永久保存,在線后備可以進(jìn)行和使用。 數(shù)據(jù)庫(kù)可運(yùn)行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。數(shù)據(jù)庫(kù)在NOARCHIVELOG方式下使用時(shí),不能進(jìn)行在線日志的歸檔。假如數(shù)據(jù)庫(kù)在ARCHIVELOG方式下運(yùn)行,可實(shí)施在線日志的歸檔。 四、Oracle的備份特性 Oracle備份包括邏輯備份和物理備份。 1.邏輯備份 數(shù)據(jù)庫(kù)的邏輯備份包含讀一個(gè)數(shù)據(jù)庫(kù)記錄集和將記錄集寫入文件。 (1)輸出(EXPort)輸出可以是整個(gè)數(shù)據(jù)庫(kù)、指定用戶或指定表。 (2)輸入(Import)輸入將輸出建立的二進(jìn)制轉(zhuǎn)儲(chǔ)文件讀入并執(zhí)行其命令。 2.物理備份 物理備份包含拷貝構(gòu)成數(shù)據(jù)庫(kù)的文件而不管其邏輯內(nèi)容。 Oracle支持兩種不同類型的物理文件備份:脫機(jī)備份(offline backup)和聯(lián)機(jī)備份(online backup)。 (1) 脫機(jī)備份 脫機(jī)備份用在當(dāng)數(shù)據(jù)庫(kù)已正常關(guān)閉,數(shù)據(jù)庫(kù)處于'offline'時(shí),要備份下列文件: 所有數(shù)據(jù)文件 所有控制文件 所有聯(lián)機(jī)日志 init.ora(可選的) 2) 聯(lián)機(jī)備份 聯(lián)機(jī)備份可用來(lái)備份任何運(yùn)作在ARCHIVELOG方式下的數(shù)據(jù)庫(kù)。在這種方式下,聯(lián)機(jī)日志被歸檔,在數(shù)據(jù)庫(kù)內(nèi)部建立一個(gè)所有作業(yè)的完整記錄。 聯(lián)機(jī)備份過(guò)程具備強(qiáng)有力的功能。第一,提供了完全的時(shí)間點(diǎn)(point-in-time)恢復(fù)。第二,在文件系統(tǒng)備份時(shí)答應(yīng)數(shù)據(jù)庫(kù)保持打開(kāi)狀態(tài)。 備份方式特性比較 方式 類型 恢復(fù)特性 Export 邏輯 可以將任何數(shù)據(jù)庫(kù)對(duì)象恢復(fù)到輸出時(shí)的狀態(tài) Offline Backups 物理 可把數(shù)據(jù)庫(kù)恢復(fù)到關(guān)閉的狀態(tài):若數(shù)據(jù)庫(kù)運(yùn)行在ARCHIVELOG方式,就可恢復(fù)到任何時(shí)間點(diǎn)的狀態(tài)。 Online Backups 物理 可把數(shù)據(jù)庫(kù)恢復(fù)到任何時(shí)間點(diǎn) 五、Oracle數(shù)據(jù)庫(kù)的角色治理 Oracle數(shù)據(jù)庫(kù)系統(tǒng)在利用角色治理數(shù)據(jù)庫(kù)安全性方面采取的基本措施有: 通過(guò)驗(yàn)證用戶名稱和口令,防止非Oracle用戶注冊(cè)到Oracle數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行非法存取操作。 授予用戶一定的權(quán)限,限制用戶操縱數(shù)據(jù)庫(kù)的權(quán)力。 授予用戶對(duì)數(shù)據(jù)庫(kù)實(shí)體的存取執(zhí)行權(quán)限,阻止用戶訪問(wèn)非授權(quán)數(shù)據(jù)。 提供數(shù)據(jù)庫(kù)實(shí)體存取審計(jì)機(jī)制,使數(shù)據(jù)庫(kù)治理員可以監(jiān)視數(shù)據(jù)庫(kù)中數(shù)據(jù)的存取情況和系統(tǒng)資源的使用情況。 采用視圖機(jī)制,限制存取基表的行和列集合。 MIS系統(tǒng)實(shí)例中Oracle數(shù)據(jù)庫(kù)的安全策略 由于Oracle數(shù)據(jù)庫(kù)備份有三種方式,每種方式具有不同的恢復(fù)特性,因此應(yīng)集成數(shù)據(jù)庫(kù)與文件系統(tǒng)備份,集成邏輯備份和物理備份。 一、備份策略 1.在操作系統(tǒng)級(jí),使用大容量磁盤陣列,通過(guò)磁盤映像技術(shù)使每一個(gè)數(shù)據(jù)庫(kù)文件自動(dòng)分布于每個(gè)物理磁盤。這樣,當(dāng)某個(gè)磁盤出現(xiàn)物理?yè)p壞時(shí),操作系統(tǒng)會(huì)自動(dòng)引發(fā)映像磁盤來(lái)取代失效的磁盤,保證數(shù)據(jù)庫(kù)的正常運(yùn)行。 由于我們使用的是雙服務(wù)器,因此在另一服務(wù)器上保留一個(gè)備份數(shù)據(jù)庫(kù)。備份數(shù)據(jù)庫(kù)與正在使用的數(shù)據(jù)庫(kù)具有相同的參數(shù)狀態(tài),這樣在數(shù)據(jù)庫(kù)故障中,只需作必須的最少恢復(fù),最大限度地縮短了恢復(fù)時(shí)間。 在多個(gè)不同的物理磁盤上保持多個(gè)控制文件的備份。控制文件在數(shù)據(jù)庫(kù)恢復(fù)期間用于引導(dǎo)Oracle,因此保持多個(gè)控制文件的備份,可以確保在出現(xiàn)磁盤故障后,能有可用的控制文件用于數(shù)據(jù)庫(kù)恢復(fù)。 使數(shù)據(jù)庫(kù)運(yùn)行在ARCHIVELOG(歸檔)方式下,歸檔日志存放于另一映像的邏輯磁盤上。 每晚進(jìn)行一次聯(lián)機(jī)備份操作,備份所有數(shù)據(jù)文件、所有歸檔日志文件、一個(gè)控制文件。 每周進(jìn)行一次輸出(Export)操作。 二、恢復(fù)策略 1.實(shí)例失敗 從實(shí)例失敗中恢復(fù)是自動(dòng)進(jìn)行的。實(shí)例失敗一般是由服務(wù)器失敗引起的,當(dāng)數(shù)據(jù)庫(kù)實(shí)例失敗后,重新啟動(dòng)服務(wù)器,啟動(dòng)數(shù)據(jù)庫(kù),Oracle檢查數(shù)據(jù)文件和聯(lián)機(jī)日志文件,并把所有文件同步到同一個(gè)時(shí)間點(diǎn)上。 2.磁盤失敗 假如丟失的是控制文件,只要關(guān)閉數(shù)據(jù)庫(kù),從保留有控制文件的地方拷貝一份即可。 假如丟失的是數(shù)據(jù)文件,可用前一天晚上的聯(lián)機(jī)備份進(jìn)行恢復(fù),步驟如下: 1)從備份中把丟失的文件存在原來(lái)位置。 2)加載數(shù)據(jù)庫(kù) 3)恢復(fù)數(shù)據(jù)庫(kù) 4)打開(kāi)數(shù)據(jù)庫(kù) 3.錯(cuò)誤刪除或修改對(duì)象 在這種情況下,一般希望能追溯返回到錯(cuò)誤發(fā)生前的那個(gè)時(shí)間點(diǎn)上。這叫做時(shí)間點(diǎn)恢復(fù)。完成恢復(fù)的步驟如下: 1)從當(dāng)前數(shù)據(jù)庫(kù)輸出(Export),輸入(Import)到備用數(shù)據(jù)庫(kù),使備用數(shù)據(jù)庫(kù)與當(dāng)前數(shù)據(jù)庫(kù)保持一致。 2)向前滾動(dòng)備用數(shù)據(jù)庫(kù)到錯(cuò)誤發(fā)生前的那個(gè)時(shí)間點(diǎn)。 3)從備用數(shù)據(jù)庫(kù)輸出受錯(cuò)誤影響的邏輯對(duì)象。 4)使用上一步產(chǎn)生的輸出文件輸入那些受影響的對(duì)象到當(dāng)前數(shù)據(jù)庫(kù)。 三、用戶角色治理 1.對(duì)所有客戶端按工作性質(zhì)分類,分別授予不同的用戶角色。 2.對(duì)不同的用戶角色,根據(jù)其使用的數(shù)據(jù)源,分別授予不同的數(shù)據(jù)庫(kù)對(duì)象存取權(quán)限。 基于以上的安全策略,可以防止非法用戶訪問(wèn)數(shù)據(jù)庫(kù),限制合法用戶操縱數(shù)據(jù)庫(kù)的權(quán)限;可以使數(shù)據(jù)庫(kù)在故障發(fā)生后,不會(huì)丟失任何數(shù)據(jù),并能使數(shù)據(jù)庫(kù)迅速恢復(fù)到故障發(fā)生前的那一時(shí)間點(diǎn)上,最大限度的保證數(shù)據(jù)的安全和整個(gè)系統(tǒng)的連續(xù)運(yùn)行。
標(biāo)簽:
Oracle
數(shù)據(jù)庫(kù)
排行榜
