摘? 要: 對數據倉庫安全模型進行了分析,討論了現有的數據倉庫安全模型,并對數據倉庫安全模型的發展方向進行了展望。
關鍵詞: 數據倉庫? 數據倉庫安全? 安全模型
?
數據倉庫是在以事務處理為主要任務的數據庫基礎上發展起來的,但是它與數據庫有著根本的不同。數據倉庫的主要特征是面向主題的、集成的、與時間相關的、不可修改的數據集合[1]。數據倉庫是一種決策支持系統,它主要是對企業決策提供強有力的支持,因此它的安全性更加重要。因為數據倉庫中數據的丟失將損害企業的決策,所以數據倉庫的安全性相對于數據庫來說更為重要。
近幾年來,雖然對數據倉庫的研究較多,但是控制對數據倉庫的訪問卻是一個正在發展的技術領域,對數據倉庫的安全控制方面的研究仍舊涉及很少。對數據倉庫的安全控制和對于傳統的操作型數據庫的安全控制是不同的。數據倉庫的控制有著更高的復雜性,原因主要在于數據倉庫的建立目的與限制對數據的訪問是矛盾的;數據倉庫中存在著不同粒度的數據;數據倉庫中的數據是以多維的方式存在的。這些因素決定了數據倉庫安全的研究是一個復雜的領域。目前對于數據倉庫安全性的研究還比較少,國內還處于起步階段,但是它卻有著極其重要的現實意義。本文主要是通過對幾個數據倉庫安全模型的研究,對數據倉庫安全性目前研究的主要內容、現狀和發展趨勢進行了分析,并給出了一些模型的應用實例。
1? 數據倉庫安全模型
一個好的安全模型是數據倉庫安全性的重要保障?,F存的許多數據倉庫在設計階段都沒有能夠很好地在數據倉庫的安全方面進行很好的設計,這使得在數據倉庫建成之后再添加關于安全方面的設計時成本大增,而且在數據倉庫建成之后再實施安全策略時也比較困難。因此在設計階段就設計好數據倉庫的安全模型對于構建一個安全的數據倉庫有著極其重要的意義。本文主要分析了四種關于數據倉庫和OLAP的安全模型。
1.1 基于元數據的數據倉庫安全模型設計
元數據是描述數據倉庫內數據的結構和建立方法的數據。元數據是數據倉庫中很重要的一部分,它將會影響數據倉庫中所有的層次,常被開發者用來管理控制和開發數據倉庫。元數據也是用戶訪問數據倉庫的一部分,它常被用來控制訪問控制和分析數據。
通過對元數據的控制來加強數據倉庫的安全性,這種情況下與安全主題和客體相關的訪問規則被以元數據的形式存儲。當一個用戶訪問數據倉庫中的數據時,安全查詢機制層將會查詢這個訪問是否被允許。為了保證查詢的正確進行,可通過分析“安全元數據”來分析相應的訪問許可機制。
N.Katic于1998年提出一個基于元數據的安全模型[2]。這是通過“安全管理者”的方式來實現的。通過它可以管理、定義、描述用戶和用戶群體。此外還設置了一個安全查詢管理層(SQML),它的作用是通過檢查是否允許一個任務的執行來過濾用戶的查詢。圖1描述了這個安全模型。
?
此模型的主要作用是如果用戶企圖查詢他沒有訪問權限的數據,則由“安全管理者”和“信息服務器”可以把用戶想查詢而又沒有查詢權限的那部分數據過濾掉,而只把他可以訪問的那些數據返回給他。這種操作對于用戶來說是透明的,用戶并不知道還有些數據他沒有訪問到。數據倉庫的信息對于用戶來說好像是提供了他所需要的所有數據。這是一個很重要的安全策略,使用戶不知道自己被禁止了部分數據,因而他不會去試圖訪問他原本看不到的數據。這樣也極大地增強了數據倉庫中數據的安全性。
該模型主要特點是把數據倉庫中的元數據擴充為二類元數據:結構元數據和訪問元數據。利用訪問元數據來控制用戶對數據倉庫的訪問。充分利用了元數據在數據倉庫中的作用。通過元數據減少了用戶試圖訪問無權訪問的數據的可能性,減少了攻擊數據倉庫的行為,從而增強了安全性。
1.2 基于角色的數據倉庫安全性模型設計
角色是數據庫中一個很重要的概念。通過角色的定義可以加強數據庫的安全性。由于數據倉庫中的數據存儲與數據庫中的數據存儲有著諸多的不同,所以將數據庫中角色的實現照搬到數據倉庫中是行不通的。
Remzi Kirkgoze,Nevena Katic于1997年提出一種基于角色的OLAP數據立方體訪問控制策略[3]。這個模型是一個基于AMAC(Adapted Mandatory Access Control)的控制OLAP多維立方體的安全控制策略。
在這個模型中主要描述了數據倉庫中每個角色的安全限制規則。每個用戶有一個角色,每個角色對應一個安全規則表。這些規則表組成了角色的安全限制文件。根據這個角色安全限制文件,每個用戶可以訪問到他被授權訪問的數據。
這個模型是一個只有“角色”作為安全主體(Scurity Subject)的數據倉庫安全模型,該模型權限只能賦予角色。安全對象(Secrtity Object)是安全系統中的客體,在OLAP環境中維表、事實表及它們的屬性都是安全對象。每一個安全主體被授權能對安全對象進行某種操作,這些操作稱為訪問類型。
把每個安全對象應用分段策略得到所有單級片段后,應用謂詞訪問策略得出每種角色能訪問的片段集。假設用戶現在的角色是R,如果他想訪問某個對象,則該系統能產生訪問該對象的片段集合A,并與安全限制規則表中R能訪問的片段集合B進行比較;如果A包含于B,則系統將處理查詢,否則將被拒絕訪問。
此模型的特點是能為不同的子立方體賦予不同角色,并能為系統用戶賦予不同角色,達到靈活性與安全性的統一。此模型是對于關系型數據庫中基于角色的訪問控制的一種擴展,是角色的訪問控制在數據倉庫中的應用。
1.3 基于授權的安全模型
授權是指一個對象對系統對象或者系統本身所擁有的合法訪問權限。Edgar Weippl等人提出了一種對數據倉庫和OLAP的一個授權模型[4],他們通過一種簡單的描述符號來描述這種訪問授權,它比用SQL的授權機制更直觀。
在這個授權模型中包括主體對象、訪問類型、客體對象和謂詞。對象指的是數據倉庫中多維立方體中的維度、維度中的層次、事實表。訪問類型主要考慮六種基本的操作:read,drill-down,roll-up,slice,dice,drill-through。
模型中以用戶而不是角色作為授權對象。本文通過下面的例子來說明這個模型。例如數據倉庫中的一個銷售鏈包括四個維度:時間、地理位置、商品、銷售度量。
時間:日-月-年
商品:產品-子類別-類別
地理位置:鄉鎮-縣市-地區-省份
銷售度量:單價、利潤
考慮地方經理和產品經理二個不同的角色,他們職責不同,地方經理可能是一個地方的管理者,而一個產品經理可能主要是負責一個單獨的商品銷售情況和各種商品的銷售情況。
下面通過一個例子來說明此模型的使用。例如:
(張三,{單價},{(時間,{(Drill-Down,月)}),(地理位置,{(Drill-Down,省份),(Roll-Up,地區)}),(商品,{(Drill-Down,類別),(Roll-Up,產品)})})。
這說明允許張三訪問每種產品的單價,但是不允許訪問每種產品的利潤,允許訪問子類別或者類別。同時,他也不能檢索基于每年或者每天的合成數據,但是允許訪問每個城市或商店的數據。如果加上下面的集合:
(張三,{單價,利潤},{(時間,{(Drill-Down,年)}),(地理位置,{(Drill-Down,省份),(Roll-Up,商店),(Slice,地區=“濟南”)}),(商品,{(Drill-Down,類別),(Roll-Up,商品)})})。
這樣,張三就能夠完全訪問濟南地區的所有商店的數據。由這二個數據集他就能夠完成他的工作:監督濟南地區的商店并且能以綜合的方式比較它們的性能如何。
此模型的特點是:從邏輯上把授權模型分為二部分SUBJECT和OBJECT,通過一種簡單的操作用戶可以方便地描述所需要的安全訪問權限,從而增強了表述能力和安全的可用性。通過一套簡單的描述符號,對于任意一種給定的安全策略,都可以很容易地實現它的訪問控制權限。此模型主要是作者通過對關系數據庫中SQL語言機制的演變,提出的一種更適合數據倉庫中多維數據訪問的策略。但是要實現此種控制還需要開發能夠解釋此種語言的機制。
1.4 基于視圖的數據倉庫安全模型
A.Rosenthal等人在2000年提出了一種基于視圖的數據倉庫安全模型[5]。這個模型是通過從數據庫與數據倉庫的聯系方面來解決問題的?,F在,在數據倉庫中訪問控制的管理常常存在于一個與數據源策略相互獨立的地方。其結果是造成不一致性,對于變化反映滯后,并且浪費管理工作。針對這種情況,本文提出把源數據所在的數據源和數據倉庫都看作是同一個分布式數據庫的一部分。由于在數據庫中已經有了比較成熟的依靠視圖機制來控制各個用戶的訪問權限的方法,把數據倉庫和數據源作為同一個分布式數據庫的一部分,這樣在數據倉庫中就不用再單獨定義數據的視圖機制,而讓它延續用數據庫中的視圖訪問機制即可。這就是說,允許自動配置對數據倉庫的許多訪問控制。從某種意義上說,這樣減少了管理員學習過程中要走的曲線過程,同時也減少了軟件提供商需要實現的軟件數量。上述安全模型可用圖2描述。
?
這種安全模型的特點是系統易于管理,使得授權管理系統及其應用更健壯。系統能夠自動地從數據源分析用戶對于數據的訪問權限,然后自動地生成用戶在數據倉庫中所能夠訪問的數據。因為數據倉庫中的數據都是通過數據抽取轉換工具從數據源處得到的。這樣就減少了技術人員在數據倉庫中在進行相應方位策略的配置問題。同時能夠很好地解決變化之后的問題。但是僅僅通過從數據庫沿用過來的視圖安全是不能夠滿足數據倉庫需要的。因為數據倉庫的數據模型是多維數據和關系數據的混合,它要比數據庫中單純的關系型數據復雜得多。視圖機制對于數據庫中writeupdate操作機制很奏效,而在數據倉庫中主要進行的操作是讀取數據分析數據,僅有此不能很好地滿足數據倉庫的需要。但是這確實提供了一種安全機制。
2? 總結與展望
本文分析的幾種數據倉庫安全模型具有很強的代表性。它們分別以不同的方式達到了增強數據倉庫安全性的目的?;谠獢祿哪P?充分考慮了元數據在數據倉庫中的重要作用。通過一些限制對元數據訪問的方法來減少數據倉庫受攻擊的可能性。其他幾種基于角色的模型、基于授權的模型以及基于視圖的模型也都有其各自的特點。但是可以看出,這些安全模型大部分都是在數據庫安全模型方面的擴展。當然這也是一種理所當然的趨勢,因為畢竟數據庫的安全理論已經比較成熟??墒怯捎跀祿}庫的建立目的、數據模型、訪問策略等與數據庫不同,二者的安全策略也是有相應區別。從數據倉庫本身的特點出發,利用一些已經成熟的安全理論來構造一種更加安全的、實施更加方便的安全模型,這也是下一步工作的重點。
總之,數據倉庫是一項基于數據管理和利用的綜合性技術和解決方案,它將成為數據庫市場的新一輪的增長點。對數據倉庫的安全性訪問作為數據倉庫技術與信息安全技術的結合點,必將會面臨更大的挑戰和機遇。
?
參考文獻
1? Inmon W H著,王志海譯.Building the Data Warehouse. 北京:機械工業出版社,2000
2? Katic N,Quirchmayr G,Schiefer J et al.A Prototype Model for DataWarehouse Security based on Metadata.
IEEE Computer Society,1998;8
3? Kirkgoze R,Katic N,Stolba M et al.A Security Concept for OLAP.in:Proceedings of the 8th.International
Workshop on Database and Expert Systems Applications(DEXA′97),IEEE Computer Society,1997
4? Weippl E,Mangisengi O,Essmayr W et al.An Autho rization Model for Data Warehouses and OLAP.in:
Proceedings of the Workshop on Security in Distributed Data Warehousing,in Conjunction with 2th.IEEE Symposium Reliable Distributed Systems (SRDS′2001),2001
5? Rosenthal A,Sciore E.View Security asthe Basis for Data Warehouse Security.in:Proceedings of the International Workshop on Design and Management of Data? Warehouse(DMDW′2000),Sweden,2000