Oracle是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它功能強(qiáng)大、性能卓越,在當(dāng)今大型數(shù)據(jù)庫管理系統(tǒng)中占有重要地位。在我們開發(fā)的一MIS系統(tǒng)中,選用了Oracle7.3數(shù)據(jù)庫。在正常情況下,Oracle數(shù)據(jù)庫會保證數(shù)據(jù)的安全、穩(wěn)定,為用戶提供正確的數(shù)據(jù),但由于計算機(jī)系統(tǒng)的故障(硬件故障、軟件故障、網(wǎng)絡(luò)故障和系統(tǒng)故障)影響數(shù)據(jù)庫系統(tǒng)的操作,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,整個系統(tǒng)都將處于癱瘓狀態(tài)。因此,如何保證Oracle數(shù)據(jù)庫的安全就成為整個MIS系統(tǒng)安全的重要組成部分。
Oracle數(shù)據(jù)庫的安全策略包括數(shù)據(jù)庫的備份和恢復(fù)、用戶角色管理。
一、數(shù)據(jù)庫備份所使用的結(jié)構(gòu)
Oracle數(shù)據(jù)庫使用幾種結(jié)構(gòu)來保護(hù)數(shù)據(jù):數(shù)據(jù)庫后備、日志、回滾段和控制文件。
1.?dāng)?shù)據(jù)庫后備是由構(gòu)成Oracle數(shù)據(jù)庫的物理文件的操作系統(tǒng)后備所組成。當(dāng)介質(zhì)故障時進(jìn)行數(shù)據(jù)庫恢復(fù),利用后備文件恢復(fù)毀壞的數(shù)據(jù)文件或控制文件。
2.每一個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)識并合并成歸檔日志。
3.回滾段用于存儲正在進(jìn)行的事務(wù)(為未提交的事務(wù))所修改值的老值,該信息在數(shù)據(jù)庫恢復(fù)過程中用于撤消任何非提交的修改。
4.控制文件,一般用于存儲數(shù)據(jù)庫的物理結(jié)構(gòu)的狀態(tài)。控制文件中某些狀態(tài)信息在實(shí)例恢復(fù)和介質(zhì)恢復(fù)期間用于引導(dǎo)Oracle。
二、在線日志
一個Oracle數(shù)據(jù)庫的每一實(shí)例有一個相關(guān)聯(lián)的在線日志。一個在線日志由多個在線日志文件組成。在線日志文件(online redo log file)填入日志項(redo entry),日志項記錄的數(shù)據(jù)用于重構(gòu)對數(shù)據(jù)庫所作的全部修改。
三、歸檔日志
Oracle要將填滿的在線日志文件組歸檔時,則要建立歸檔日志(archived redo log)。其對數(shù)據(jù)庫備份和恢復(fù)有下列用處:
1.?dāng)?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í)施在線日志的歸檔。
四、Oracle的備份特性
Oracle備份包括邏輯備份和物理備份。
1.邏輯備份
數(shù)據(jù)庫的邏輯備份包含讀一個數(shù)據(jù)庫記錄集和將記錄集寫入文件。
(1)輸出(Export)輸出可以是整個數(shù)據(jù)庫、指定用戶或指定表。
(2)輸入(Import)輸入將輸出建立的二進(jìn)制轉(zhuǎn)儲文件讀入并執(zhí)行其命令。
2.物理備份
物理備份包含拷貝構(gòu)成數(shù)據(jù)庫的文件而不管其邏輯內(nèi)容。
Oracle支持兩種不同類型的物理文件備份:脫機(jī)備份(offline backup)和聯(lián)機(jī)備份(online backup)。
(1) 脫機(jī)備份 脫機(jī)備份用在當(dāng)數(shù)據(jù)庫已正常關(guān)閉,數(shù)據(jù)庫處于"offline"時,要備份下列文件:
所有數(shù)據(jù)文件
所有控制文件
所有聯(lián)機(jī)日志
init.ora(可選的)
(2) 聯(lián)機(jī)備份
聯(lián)機(jī)備份可用來備份任何運(yùn)作在ARCHIVELOG方式下的數(shù)據(jù)庫。在這種方式下,聯(lián)機(jī)日志被歸檔,在數(shù)據(jù)庫內(nèi)部建立一個所有作業(yè)的完整記錄。
聯(lián)機(jī)備份過程具備強(qiáng)有力的功能。第一,提供了完全的時間點(diǎn)(point-in-time)恢復(fù)。第二,在文件系統(tǒng)備份時允許數(shù)據(jù)庫保持打開狀態(tài)。
備份方式特性比較
方式 類型 恢復(fù)特性
Export 邏輯 可以將任何數(shù)據(jù)庫對象恢復(fù)到輸出時的狀態(tài)
Offline Backups 物理 可把數(shù)據(jù)庫恢復(fù)到關(guān)閉的狀態(tài):若數(shù)據(jù)庫運(yùn)行在ARCHIVELOG方式,就可恢復(fù)到任何時間點(diǎn)的狀態(tài)。
Online Backups 物理 可把數(shù)據(jù)庫恢復(fù)到任何時間點(diǎn)
五、Oracle數(shù)據(jù)庫的角色管理
Oracle數(shù)據(jù)庫系統(tǒng)在利用角色管理數(shù)據(jù)庫安全性方面采取的基本措施有:
通過驗證用戶名稱和口令,防止非Oracle用戶注冊到Oracle數(shù)據(jù)庫,對數(shù)據(jù)庫進(jìn)行非法存取操作。
授予用戶一定的權(quán)限,限制用戶操縱數(shù)據(jù)庫的權(quán)力。
授予用戶對數(shù)據(jù)庫實(shí)體的存取執(zhí)行權(quán)限,阻止用戶訪問非授權(quán)數(shù)據(jù)。
提供數(shù)據(jù)庫實(shí)體存取審計機(jī)制,使數(shù)據(jù)庫管理員可以監(jiān)視數(shù)據(jù)庫中數(shù)據(jù)的存取情況和系統(tǒng)資源的使用情況。
采用視圖機(jī)制,限制存取基表的行和列集合。


