Oracle數據庫安全策略與實現方法
數據庫安全性問題一直是圍繞著數據庫管理員的惡夢,數據庫數據的丟失以及數據庫被非法用戶的侵入使得數據庫管理員身心疲憊不堪。隨著計算機技術的飛速發展,數據庫的應用十分廣泛,深入到各個領域,但隨之而來產生了數據的安全問題。各種應用系統的數據庫中大量數據的安全問題、敏感數據的防竊取和防篡改問題,越來越引起人們的高度重視。數據庫系統作為信息的聚集體,是計算機信息系統的核心部件,其安全性至關重要,關系到企業興衰、國家安全。因此,如何有效地保證數據庫系統的安全,實現數據的保密性、完整性和有效性,已經成為如今關注的一個話題。
· 絕密保典杜絕胸險; · 銀行卡 安全快捷換Q幣; · 溝通無極限手機Q時代; · 魔法表情秀出百變心情; · 管中窺豹明察秋毫; · QQ秀 秀出個性真自我;
甲骨文董事長拉里·埃里森在Oracle OpenWorld大會上,談到了一個觀點——要保護數據庫安全,關鍵在于加密。他還認為,我們不僅要為發往互聯網的數據庫中的數據加密,還要為從硬盤轉移到后端系統的過程中的數據加密。他還建議企業禁止用戶在沒有進行加密的情況下實施數據備份?!耙驗槿绻麤]有加密的備份CD或者DVD光盤一旦丟失,你就會失去信息?!?/p>
數據庫系統的安全性很大程度上依賴于數據庫管理系統。如果數據庫管理系統安全機制非常強大,則數據庫系統的安全性能就較好。目前市場上流行的是關系式數據庫管理系統,其安全性功能很弱,這就導致數據庫系統的安全性存在一定的威脅。因此,數據庫管理員應從以下幾個方面對數據庫的安全進行考慮。
一:用戶角色的管理
這是保護數據庫系統安全的重要手段之一。它通過建立不同的用戶組和用戶口令驗證,可以有效地防止非法的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外層實現加密功能的原理:
三:數據保護
數據庫的數據保護主要是數據庫的備份,當計算機的軟硬件發生故障時,利用備份進行數據庫恢復,以恢復破壞的數據庫文件或控制文件或其他文件。
另一種數據保護就是日志,Oracle數據庫提供日志,用以記錄數據庫中所進行的各種操作,包括修改、調整參數等,在數據庫內部建立一個所有作業的完整記錄。
再一個就是控制文件的備份,它一般用于存儲數據庫物理結構的狀態,控制文件中的某些狀態信息在實例恢復和介質恢復期間用于引導Oracle數據庫。
日常工作中,數據庫的備份是數據庫管理員必須不斷要進行的一項工作,Oracle數據庫的備份主要有以下幾種方式:
1.邏輯備份
邏輯備份就是將某個數據庫的記錄讀出并將其寫入到一個文件中,這是經常使用的一種備份方式。
● export(導出):此命令可以將某個數據文件、某個用戶的數據文件或整個數據庫進行備份。
● import(導入):此命令將export建立的轉儲文件讀入數據庫系統中,也可按某個數據文件、用戶或整個數據庫進行。
2.物理備份
物理備份也是數據庫管理員經常使用的一種備份方式。它可以對Oracle數據庫的所有內容進行拷貝,方式可以是多種,有脫機備份和聯機備份,它們各有所長,在實際中應根據具體情況和所處狀態進行選擇。
● 脫機備份
其操作是在Oracle數據庫正常關閉后,對Oracle數據庫進行備份,備份的內容包括:所有用戶的數據庫文件和表;所有控制文件;所有的日志文件;數據庫初始化文件等??刹扇〔煌膫浞莘绞剑纾豪么艓мD儲命令(tar)將所有文件轉儲到磁帶上,或將所有文件原樣復制(copy,rcp)到另一個備份磁盤中或另一個主機的磁盤中。
● 聯機備份
這種備份方式也是切實有效的,它可以將聯機日志轉儲歸擋,在 Oracle數據庫內部建立一個所有進程和作業的詳細準確的完全記錄。
物理備份的另一個好處是可將Oracle數據庫管理系統完整轉儲, 一旦發生故障,可以方便及時地恢復,以減少數據庫管理員重新安裝Oracle帶來的麻煩。
有了上述幾種備份方法,即使計算機發生故障,如介質損壞、軟件系統異常等情況時,也不必驚慌失措,可以通過備份進行不同程度的恢復,使Oracle數據庫系統盡快恢復到正常狀態。幾種數據庫損壞情況的恢復方式有:
1.數據文件損壞
這種情況可以用最近所做的數據庫文件備份進行恢復,即將備份中的對應文件恢復到原來位置,重新加載數據庫。
2.控制文件損壞
若數據庫系統中的控制文件損壞,則數據庫系統將不能正常運行,那么,只須將數據庫系統關閉,然后從備份中將相應的控制文件恢復到原位置,重新啟動數據庫系統。
3.整個文件系統損壞
在大型的操作系統中,如UNIX,由于磁盤或磁盤陣列的介質不可靠或損壞是經常發生的,這將導致整個Oracle數據庫系統崩潰,這種情形只能:
● 將磁盤或磁盤陣列重新初始化,去掉失效或不可靠的壞塊。
● 重新創建文件系統。
● 利用備份將數據庫系統完整地恢復。
● 啟動數據庫系統。
數據庫加密系統分成兩個功能獨立的主要部件:一個是加密字典管理程序,另一個是數據庫加/解密引擎。數據庫加密系統將用戶對數據庫信息具體的加密要求以及基礎信息保存在加密字典中,通過調用數據加/解密引擎實現對數據庫表的加密、脫密及數據轉換等功能。數據庫信息的加/解密處理是在后臺完成的,對數據庫服務器是透明的。
按以上方式實現的數據庫加密系統具有很多優點:首先,系統對數據庫的最終用戶是完全透明的,管理員可以根據需要進行明文和密文的轉換工作;其次,加密系統完全獨立于數據庫應用系統,無須改動數據庫應用系統就能實現數據加密功能;第三,加解密處理在客戶端進行,不會影響數據庫服務器的效率。
數據庫加/解密引擎是數據庫加密系統的核心部件,它位于應用程序與數據庫服務器之間,負責在后臺完成數據庫信息的加/解密處理,對應用開發人員和操作人員來說是透明的。數據加/解密引擎沒有操作界面,在需要時由操作系統自動加載并駐留在內存中,通過內部接口與加密字典管理程序和用戶應用程序通訊。數據庫加/解密引擎由三大模塊組成:加/解密處理模塊、用戶接口模塊和數據庫接口模塊。其中,“數據庫接口模塊”的主要工作是接受用戶的操作請求,并傳遞給“加/解密處理模塊”,此外還要代替“加/解密處理模塊”去訪問數據庫服務器,并完成外部接口參數與加/脫密引擎內部數據結構之間的轉換。“加/解密處理模塊”完成數據庫加/解密引擎的初始化、內部專用命令的處理、加密字典信息的檢索、加密字典緩沖區的管理、SQL命令的加密變換、查詢結果的脫密處理以及加脫密算法實現等功能,另外還包括一些公用的輔助函數。
相關文章: