Oracle資料庫的安全性原則
Oracle是關係型資料庫管理系統,它功能強大、效能卓越,在當今大型資料庫管理系統中佔有重要地位。在我們開發的一MIS系統中,選用了Oracle7.3資料庫。在正常情況下,Oracle資料庫會保證資料的安全、穩定,為使用者提供正確的資料,但由於電腦系統的故障(硬體故障、軟體故障、網路故障和系統故障)影響資料庫系統的操作,影響資料庫中資料的正確性,甚至破壞資料庫,使資料庫中全部或部分資料丟失,整個系統都將處於癱瘓狀態。因此,如何保證Oracle資料庫的安全就成為整個MIS系統安全的重要組成部分。
Oracle資料庫的安全性原則包括資料庫的備份和恢複、使用者角色管理。
一、Database Backup所使用的結構
Oracle資料庫使用幾種結構來保護資料:資料庫後備、日誌、復原段和控制檔案。
1.資料庫後備是由構成Oracle資料庫的物理檔案的作業系統後備所組成。當介質故障時進行資料庫恢複,利用後備檔案恢複毀壞的資料檔案或控制檔案。
2.每一個Oracle資料庫執行個體都提供日誌,記錄資料庫中所作的全部修改。每一個啟動並執行Oracle資料庫執行個體相應地有一個線上日誌,它與Oracle後台進程LGWR一起工作,立即記錄該執行個體所作的全部修改。歸檔(離線)日誌是可選擇的,一個Oracle資料庫執行個體一旦線上日誌填滿後,可形成線上日誌歸檔檔案。歸檔的線上記錄檔被唯一標識併合並成歸檔日誌。
3.復原段用於儲存進行中的事務(為未提交的事務)所修改值的老值,該資訊在資料庫恢複過程中用於撤消任何非提交的修改。
4.控制檔案,一般用於儲存資料庫的物理結構的狀態。控制檔案中某些狀態資訊在執行個體恢複和介質恢複期間用於引導Oracle。
二、線上日誌
一個Oracle資料庫的每一執行個體有一個相關聯的線上日誌。一個線上日誌由多個線上記錄檔組成。線上記錄檔(online redo log file)填入日誌項(redo entry),日誌項記錄的資料用於重構對資料庫所作的全部修改。
三、歸檔日誌
Oracle要將填滿的線上記錄檔組歸檔時,則要建立歸檔日誌(archived redo log)。其對Database Backup和恢複有下列用處:
1.資料庫後備以及線上和歸檔記錄檔,在作業系統和磁碟故障中可保證全部提交的事物可被恢複。
2.在資料庫開啟和正常系統使用下,如果歸檔日誌是永久儲存,線上後備可以進行和使用。
資料庫可運行在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。資料庫在NOARCHIVELOG方式下使用時,不能進行線上日誌的歸檔。如果資料庫在ARCHIVELOG方式下運行,可實施線上日誌的歸檔。
四、Oracle的備份特性
Oracle備份包括邏輯備份和物理備份。
1.邏輯備份
資料庫的邏輯備份包含讀一個資料庫記錄集和將記錄集寫入檔案。
(1)輸出(Export)輸出可以是整個資料庫、指定使用者或指定表。
(2)輸入(Import)輸入將輸出建立的二進位轉儲檔案讀入並執行其命令。
2.物理備份
物理備份包含拷貝構成資料庫的檔案而不管其邏輯內容。
Oracle支援兩種不同類型的物理檔案備份:離線備份(offline backup)和聯機備份(online backup)。
(1) 離線備份
離線備份用在當資料庫已正常關閉,資料庫處於"offline"時,要備份下列檔案:
所有資料檔案
所有控制檔案
所有聯機日誌
init.ora(可選的)
(2) 聯機備份
聯機備份可用來備份任何運作在ARCHIVELOG方式下的資料庫。在這種方式下,聯機日誌被歸檔,在資料庫內部建立一個所有作業的完整記錄。
聯機備份過程具備強有力的功能。第一,提供了完全的時間點(point-in-time)恢複。第二,在檔案系統備份時允許資料庫保持開啟狀態。
備份方式特性比較
方式 類型 恢複特性
Export 邏輯 可以將任何資料庫物件恢複到輸出時的狀態
Offline Backups 物理 可把資料庫恢複到關閉的狀態:若資料庫運行在ARCHIVELOG方式,就可恢複到任何時間點的狀態。
Online Backups 物理 可把資料庫恢複到任何時間點
五、Oracle資料庫的角色管理
Oracle資料庫系統在利用角色管理資料庫安全性方面採取的基本措施有:
通過驗證使用者名稱稱和口令,防止非Oracle使用者註冊到Oracle資料庫,對資料庫進行非法存取操作。
授予使用者一定的許可權,限制使用者操縱資料庫的權力。
授予使用者對資料庫實體的存取執行許可權,阻止使用者訪問非授權資料。
提供資料庫實體存取審計機制,使資料庫管理員可以監視資料庫中資料的存取情況和系統資源的使用方式。
採用視圖機制,限制存取基表的行和列集合。
MIS系統執行個體中Oracle資料庫的安全性原則
由於OracleDatabase Backup有三種方式,每種方式具有不同的恢複特性,因此應整合資料庫與檔案系統備份,整合邏輯備份和物理備份。
一、備份策略
1.在作業系統級,使用大容量磁碟陣列,通過磁碟映像技術使每一個資料庫檔案自動分佈於每個物理磁碟。這樣,當某個磁碟出現物理損壞時,作業系統會自動引發映像磁碟來取代失效的磁碟,保證資料庫的正常運行。
由於我們使用的是雙伺服器,因此在另一伺服器上保留一個備份資料庫。備份資料庫與正在使用的資料庫具有相同的參數狀態,這樣在資料庫故障中,只需作必須的最少恢複,最大限度地縮短了恢復。
在多個不同的物理磁碟上保持多個控制檔案的備份。控制檔案在資料庫恢複期間用於引導Oracle,因此保持多個控制檔案的備份,可以確保在出現磁碟故障後,能有可用的控制檔案用於資料庫恢複。
使資料庫運行在ARCHIVELOG(歸檔)方式下,歸檔日誌存放於另一映像的邏輯磁碟上。
每晚進行一次聯機備份操作,備份所有資料檔案、所有歸檔記錄檔、一個控制檔案。
每周進行一次輸出(Export)操作。
二、恢複策略
1.執行個體失敗
從執行個體失敗中恢複是自動進行的。執行個體失敗一般是由伺服器失敗引起的,當資料庫執行個體失敗後,重新啟動伺服器,啟動資料庫,Oracle檢查資料檔案和聯機記錄檔,並把所有檔案同步到同一個時間點上。
2.磁碟失敗
如果丟失的是控制檔案,只要關閉資料庫,從保留有控制檔案的地方拷貝一份即可。
如果丟失的是資料檔案,可用前一天晚上的聯機備份進行恢複,步驟如下:
1)從備份中把丟失的檔案存在原來位置。
2)載入資料庫
3)恢複資料庫
4)開啟資料庫
3.錯誤刪除或修改對象
在這種情況下,一般希望能追溯返回到錯誤發生前的那個時間點上。這叫做時間點恢複。完成恢複的步驟如下:
1)從當前資料庫輸出(Export),輸入(Import)到備用資料庫,使備用資料庫與當前資料庫保持一致。
2)向前滾動備用資料庫到錯誤發生前的那個時間點。
3)從備用資料庫輸出受錯誤影響的邏輯對象。
4)使用上一步產生的輸出檔案輸入那些受影響的對象到當前資料庫。
三、使用者角色管理
1.對所有用戶端按工作性質分類,分別授予不同的使用者角色。
2.對不同的使用者角色,根據其使用的資料來源,分別授予不同的資料庫物件存取許可權。
基於以上的安全性原則,可以防止非法使用者訪問資料庫,限制合法使用者操縱資料庫的許可權;可以使資料庫在故障發生後,不會丟失任何資料,並能使資料庫迅速恢複到故障發生前的那一時間點上,最大限度的保證資料的安全和整個系統的連續運行。