Oracle資料庫安全策略與實現方法(轉)

post0發表於2007-08-12
Oracle資料庫安全策略與實現方法(轉)[@more@]

  資料庫安全性問題一直是圍繞著資料庫管理員的惡夢,資料庫資料的丟失以及資料庫被非法使用者的侵入使得資料庫管理員身心疲憊不堪。隨著計算機技術的飛速發展,資料庫的應用十分廣泛,深入到各個領域,但隨之而來產生了資料的安全問題。各種應用系統的資料庫中大量資料的安全問題、敏感資料的防竊取和防篡改問題,越來越引起人們的高度重視。資料庫系統作為資訊的聚集體,是計算機資訊系統的核心部件,其安全性至關重要,關係到企業興衰、國家安全。因此,如何有效地保證資料庫系統的安全,實現資料的保密性、完整性和有效性,已經成為如今關注的一個話題。

  甲骨文董事長拉里。埃裡森在Oracle OpenWorld大會上,談到了一個觀點――要保護資料庫安全,關鍵在於加密。他還認為,我們不僅要為發往網際網路的資料庫中的資料加密,還要為從硬碟轉移到後端系統的過程中的資料加密。他還建議企業禁止使用者在沒有進行加密的情況下實施資料備份。“因為如果沒有加密的備份CD或者DVD光碟一旦丟失,你就會失去資訊。”

  資料庫系統的安全性很大程度上依賴於資料庫管理系統。如果資料庫管理系統安全機制非常強大,則資料庫系統的安全效能就較好。目前市場上流行的是關係式資料庫管理系統,其安全性功能很弱,這就導致資料庫系統的安全性存在一定的威脅。因此,資料庫管理員應從以下幾個方面對資料庫的安全進行考慮。

  一:使用者角色的管理

  這是保護資料庫系統安全的重要手段之一。它透過建立不同的使用者組和使用者口令驗證,可以有效地防止非法的Oracle使用者進入資料庫系統,造成不必要的麻煩和損壞;另外在Oracle資料庫中,可以透過授權來對Oracle使用者的操作進行限制,即允許一些使用者可以對Oracle伺服器進行訪問,也就是說對整個資料庫具有讀寫的權利,而大多數使用者只能在同組內進行讀寫或對整個資料庫只具有讀的權利。在此,特別強調對SYS和SYSTEM兩個特殊賬戶的保密管理。

  為了保護ORACLE資料庫伺服器的安全,應保證$ORACLE_HOME/bin目錄下的所有內容的所有權為Oracle使用者所有。 為了加強資料庫在網路中的安全性,對於遠端使用者,應使用加密方式透過密碼來訪問資料庫,加強網路上的DBA許可權控制,如拒絕遠端的DBA訪問等。

  二:資料庫的加密

  由於資料庫系統在作業系統下都是以檔案形式進行管理的,因此入侵者可以直接利用作業系統的漏洞竊取資料庫檔案,或者直接利用OS工具來非法偽造、篡改資料庫檔案內容。這種隱患一般資料庫使用者難以察覺,分析和堵塞這種漏洞被認為是B2級的安全技術措施。

  資料庫管理系統分層次的安全加密方法主要用來解決這一問題,它可以保證當前面的層次已經被突破的情況下仍能保障資料庫資料的安全,這就要求資料庫管理系統必須有一套強有力的安全機制。解決這一問題的有效方法之一是資料庫管理系統對資料庫檔案進行加密處理,使得即使資料不幸洩露或者丟失,也難以被人破譯和閱讀。

  我們可以考慮在三個不同層次實現對資料庫資料的加密,這三個層次分別是OS層、DBMS核心層和DBMS外層。

  ⑴ 在OS層加密。在OS層無法辨認資料庫檔案中的資料關係,從而無法產生合理的金鑰,對金鑰合理的管理和使用也很難。所以,對大型資料庫來說,在OS層對資料庫檔案進行加密很難實現。

  ⑵ 在DBMS核心層實現加密。這種加密是指資料在物理存取之前完成加/解密工作。這種加密方式的優點是加密功能強,並且加密功能幾乎不會影響DBMS的功能,可以實現加密功能與資料庫管理系統之間的無縫耦合。其缺點是加密運算在伺服器端進行,加重了伺服器的負載,而且DBMS和加密器之間的介面需要DBMS開發商的支援。

  ⑶ 在DBMS外層實現加密。比較實際的做法是將資料庫加密系統做成DBMS的一個外層工具,根據加密要求自動完成對資料庫資料的加/解密處理。採用這種加密方式進行加密,加/解密運算可在客戶端進行,它的優點是不會加重資料庫伺服器的負載並且可以實現網上傳輸的加密,缺點是加密功能會受到一些限制,與資料庫管理系統之間的耦合性稍差。

  下面我們進一步解釋在DBMS外層實現加密功能的原理:

  資料庫加密系統分成兩個功能獨立的主要部件:一個是加密字典管理程式,另一個是資料庫加/解密引擎。資料庫加密系統將使用者對資料庫資訊具體的加密要求以及基礎資訊儲存在加密字典中,透過呼叫資料加/解密引擎實現對資料庫表的加密、脫密及資料轉換等功能。資料庫資訊的加/解密處理是在後臺完成的,對資料庫伺服器是透明的。

  按以上方式實現的資料庫加密系統具有很多優點:首先,系統對資料庫的終端使用者是完全透明的,管理員可以根據需要進行明文和密文的轉換工作;其次,加密系統完全獨立於資料庫應用系統,無須改動資料庫應用系統就能實現資料加密功能;第三,加解密處理在客戶端進行,不會影響資料庫伺服器的效率。

  資料庫加/解密引擎是資料庫加密系統的核心部件,它位於應用程式與資料庫伺服器之間,負責在後臺完成資料庫資訊的加/解密處理,對應用開發人員和操作人員來說是透明的。資料加/解密引擎沒有操作介面,在需要時由作業系統自動載入並駐留在記憶體中,透過內部介面與加密字典管理程式和使用者應用程式通訊。資料庫加/解密引擎由三大模組組成:加/解密處理模組、使用者介面模組和資料庫介面模組。其中,“資料庫介面模組”的主要工作是接受使用者的操作請求,並傳遞給“加/解密處理模組”,此外還要代替“加/解密處理模組”去訪問資料庫伺服器,並完成外部介面引數與加/脫密引擎內部資料結構之間的轉換。“加/解密處理模組”完成資料庫加/解密引擎的初始化、內部專用命令的處理、加密字典資訊的檢索、加密字典緩衝區的管理、SQL命令的加密變換、查詢結果的脫密處理以及加脫密演算法實現等功能,另外還包括一些公用的輔助函式。

  三:資料保護

  資料庫的資料保護主要是資料庫的備份,當計算機的軟硬體發生故障時,利用備份進行資料庫恢復,以恢復破壞的資料庫檔案或控制檔案或其他檔案。

  另一種資料保護就是日誌,Oracle資料庫提供日誌,用以記錄資料庫中所進行的各種操作,包括修改、調整引數等,在資料庫內部建立一個所有作業的完整記錄。

  再一個就是控制檔案的備份,它一般用於儲存資料庫物理結構的狀態,控制檔案中的某些狀態資訊在例項恢復和介質恢復期間用於引導Oracle資料庫。

  日常工作中,資料庫的備份是資料庫管理員必須不斷要進行的一項工作,Oracle資料庫的備份主要有以下幾種方式:

  1.邏輯備份

  邏輯備份就是將某個資料庫的記錄讀出並將其寫入到一個檔案中,這是經常使用的一種備份方式。

  ● export(匯出):此命令可以將某個資料檔案、某個使用者的資料檔案或整個資料庫進行備份。

  ● import(匯入):此命令將export建立的轉儲檔案讀入資料庫系統中,也可按某個資料檔案、使用者或整個資料庫進行。

  2.物理備份

  物理備份也是資料庫管理員經常使用的一種備份方式。它可以對Oracle資料庫的所有內容進行複製,方式可以是多種,有離線備份和聯機備份,它們各有所長,在實際中應根據具體情況和所處狀態進行選擇。

  ● 離線備份

  其操作是在Oracle資料庫正常關閉後,對Oracle資料庫進行備份,備份的內容包括:所有使用者的資料庫檔案和表;所有控制檔案;所有的日誌檔案;資料庫初始化檔案等。可採取不同的備份方式,如:利用磁帶轉儲命令(tar)將所有檔案轉儲到磁帶上,或將所有檔案原樣複製(copy,rcp)到另一個備份磁碟中或另一個主機的磁碟中。

  ● 聯機備份

  這種備份方式也是切實有效的,它可以將聯機日誌轉儲歸擋,在 Oracle資料庫內部建立一個所有程式和作業的詳細準確的完全記錄。

  物理備份的另一個好處是可將Oracle資料庫管理系統完整轉儲, 一旦發生故障,可以方便及時地恢復,以減少資料庫管理員重新安裝Oracle帶來的麻煩。

  有了上述幾種備份方法,即使計算機發生故障,如介質損壞、軟體系統異常等情況時,也不必驚慌失措,可以透過備份進行不同程度的恢復,使Oracle資料庫系統儘快恢復到正常狀態。幾種資料庫損壞情況的恢復方式有:

  1.資料檔案損壞

  這種情況可以用最近所做的資料庫檔案備份進行恢復,即將備份中的對應檔案恢復到原來位置,重新載入資料庫。

  2.控制檔案損壞

  若資料庫系統中的控制檔案損壞,則資料庫系統將不能正常執行,那麼,只須將資料庫系統關閉,然後從備份中將相應的控制檔案恢復到原位置,重新啟動資料庫系統。

  3.整個檔案系統損壞

  在大型的作業系統中,如UNIX,由於磁碟或磁碟陣列的介質不可靠或損壞是經常發生的,這將導致整個Oracle資料庫系統崩潰,這種情形只能:

  ● 將磁碟或磁碟陣列重新初始化,去掉失效或不可靠的壞塊。

  ● 重新建立檔案系統。

  ● 利用備份將資料庫系統完整地恢復。

  ● 啟動資料庫系統

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-951064/,如需轉載,請註明出處,否則將追究法律責任。

相關文章