摘 要: 元數據是數據倉庫的關鍵技術之一,也是數據倉庫安全性的解決途徑之一。對基于元數據的數據倉庫安全模型進行了研究,對原模型進行了改進,并提出了在Oracle9i數據倉庫平臺上的解決方案。
關鍵詞: 數據倉庫;元數據;安全模型
客運數據分析系統(tǒng)——SMARTRIX數據倉庫,擁有一系列深層數據分析產品,可以進行不同維度的分析和挖掘,為航空公司的決策支持提供量化依據。該系統(tǒng)目前的運維模式是運行支持人員使用專用的程序進行數據倉庫數據的維護,客戶通過統(tǒng)一的訪問界面BO來訪問報表數據,不同客戶可以訪問的報表是在BO中進行的設置,報表數據與數據庫的連接是通過專用的ID來訪問數據庫數據的,這種架構目前可以滿足安全需求。但隨著業(yè)務的發(fā)展,數據倉庫的數據源越來越多樣化,在維護中需要更多的技術支持人員訪問數據庫,同時客戶的系統(tǒng)支持人員也要求參與到數據倉庫數據的管理中。這樣,目前的數據倉庫安全性就不能滿足未來業(yè)務發(fā)展的需要,因此加強數據倉庫的安全性研究變得非常迫切。由于在SMARTRIX數據倉庫設計時的元數據建立得非常完備,而業(yè)界在通過元數據控制安全方面也有不少研究,為此本文主要針對數據倉庫的安全性進行了研究,提出了一種基于元數據的數據倉庫訪問控制模型,并研究了它在oracle平臺下的實現(xiàn)方式,為下一步加強數據倉庫的安全性做些探索。
1 基于元數據的數據倉庫安全模型及其研究
元數據是關于數據的數據,是描述數據倉庫內數據的結構和建立方法的數據。元數據不僅描述了數據倉庫所包含的內容,而且能夠幫助用戶識別數據倉庫中的數據質量[1]。由于元數據貫穿數據倉庫實施的整個過程,技術人員要想很好地開發(fā)數據倉庫,業(yè)務人員要想很好地使用數據倉庫必須透徹地理解元數據,從而元數據成為數據倉庫訪問的一個必經之路,沒有元數據就無法訪問數據倉庫中的數據,訪問控制環(huán)境可以通過元數據引導[2]。
參考文獻[3]把元數據分為“結構元數據”和“訪問元數據”。結構元數據主要用來創(chuàng)建和維護數據倉庫,描述了數據倉庫的結構和內容、數據主體、數據特征及其之間的相互關系。“訪問元數據”描述了數據倉庫和終端用戶應用程序之間的動態(tài)關系[1],包括企業(yè)、用戶的價值衡量,描述了數據倉庫服務器、數據庫、表以及從數據源到數據倉庫傳送數據所執(zhí)行的操作。“訪問元數據”針對維度視圖和表層次建立了“Drill-Down”和“Roll-Up”規(guī)則,這些數據也可以包含用戶定義的訪問規(guī)則與查詢策略來限制用戶對數據倉庫數據的訪問。
1.1 安全模型原理
在數據倉庫原系統(tǒng)的基礎上添加了兩個部件:“安全管理者”和“信息查詢管理層(SQML)”。通過“安全管理者”系統(tǒng)管理員定義用戶組可訪問的數據,可以指定用戶組可以訪問哪些事實表、維度等,添加新的用戶時需要指定此用戶屬于哪個用戶組,加入組的用戶具有這個用戶組中數據的訪問權限。“信息查詢管理層”的功能是在信息服務器上實現(xiàn)的,其主要的功能是從Internet上接收用戶請求,并檢查查詢內容是否在用戶的權限之內。通過添加的這兩個組件,達到了間接控制數據倉庫數據訪問的目的。其原理如圖1所示。
1.2 存在問題
上述基于元數據的安全模型需要一種結構化的描述語言(MQL)的支持,使用此安全模型的數據倉庫中的數據是用MQL語言以樹形的結構表示出來的。首先,“安全管理者”定義一個新的用戶組,存儲下這個用戶組的訪問權限,用戶組的訪問規(guī)則以MQL語句存儲下來。SQML接收到用戶的請求并把它轉化為MQL查詢,再與存儲的用戶組的訪問權限對比,查看用戶查詢的內容是否在訪問權限之內。由于需要MQL語言的支持,使得此模型具有一定的私有性,不易在通用的數據倉庫中進行推廣。
1.3 借鑒與推廣
但是,借助“訪問元數據”來控制數據倉庫訪問的思想是可以借鑒的。CWM“公共數據倉庫元模型”在2000年由OMG提出,是專門為數據倉庫元數據而制定的一套標準。該規(guī)范提供了一個描述數據源、數據目標、轉化、分析、處理、操作等與建設和管理數據倉庫相關信息的元數據基礎框架,并為在多個廠商的產品之間進行元數據的通信和共享提供了一個切實可行的標準。MDC組織的OIM“開放信息模型”與OMG組織已經合并,今后所有的數據倉庫工具都將遵循統(tǒng)一的CWM標準。CWM的標準化使得數據倉庫元數據變得易于訪問。
鑒于上述原因,利用元數據標準CWM的標準化,本文從實踐的角度提出一個基于元數據的數據倉庫安全模型的實施方案。此模型是對原模型的擴展與推廣,相對于原模型,所構造的模型具有結構可控、使用方便、易于在商業(yè)產品上實施等特點。
2 安全模型原型系統(tǒng)設計
2.1 系統(tǒng)框架
通過把系統(tǒng)中的元數據擴充,加入“訪問元數據”,“訪問元數據”中存儲用戶的訪問規(guī)則。終端用戶通過“訪問元數據”進行數據倉庫信息的訪問,訪問元數據中設定了用戶的訪問規(guī)則,如果訪問控制系統(tǒng)中用戶的權限滿足用戶查詢的內容需求,則允許用戶繼續(xù)進行訪問,否則拒絕訪問。同時用戶的訪問規(guī)則可以通過訪問元數據控制器進行調整,訪問元數據控制器為管理員進行“訪問元數據”的管理提供了友好的界面。系統(tǒng)框架如圖2所示。
首先,由于數據倉庫系統(tǒng)的用戶對于數據倉庫中存儲不同的多維數據具有不同的訪問權限,用戶、立方體、立方體維度以及用戶的訪問權限這每一個要素都代表了一個控制角度,它們之間可以組成一個多維的訪問控制模型,這個模型的數據就是“訪問元數據”的主體。多維數據完全可以采用數據倉庫技術把該數據模型展現(xiàn)出來,通過多維數據來建立用戶的訪問規(guī)則使其能夠充分利用數據倉庫組織多維數據的優(yōu)勢,強化和改善訪問控制的過程。
該模型的核心部件是訪問元數據引擎,主要具有以下功能:
(1)通過“訪問元數據”可以查看用戶要查詢的內容是否在他的權限之內。
(2)能夠自動從事實表和維表中獲得新的控制信息。
(3)通過“訪問元數據”控制平臺可以方便地對“訪問元數據”及其相關的事實表和維表進行管理。
2.2 訪問元數據設計
2.2.1 訪問控制維的設計
為簡便起見,在這里構造了4個表:用戶表User_table、立方體表Cube_table、維度表Dimension_table和時間表Time_table。抽象為“訪問元數據”的4個訪問控制維度(用戶、立方體、維度與時間),可以控制某個用戶在什么時間內是否具有對某個立方體某些維度的訪問權限。表的構造分別如表1~表4所示(表中數據僅做示例)。
用戶表可以構成“訪問元數據”的一個訪問控制維度,如用戶張華登錄系統(tǒng)時可以選擇“張華”這個維度來查看用戶的訪問權限。
立方體表描述了當前系統(tǒng)中用戶可以訪問的數據立方體。如當前系統(tǒng)中存在3個數據立方體(收益分析、商務分析和促銷分析),在用戶訪問時可以獲得用戶想訪問哪個立方體的數據,是收益分析的數據還是商務分析的數據。
維度表描述了系統(tǒng)中每個用戶可訪問的立方體分別由哪些維度構成。如立方體2001(即收益分析立方體)中含有航線收益分析維和代理人運輸貢獻分析維等。
時間表描述了系統(tǒng)中的用戶可以在什么時間內是否可以訪問數據倉庫中的數據。例如,用戶只可以在周一訪問收益分析立方體的數據等。
除了構造維表之外還需要用戶的訪問事實表(Access_fact),訪問事實表中存儲了用戶的訪問權限及其相關數據。
2.2.2 “訪問元數據”星型結構
維表和事實表之間的星型關系如圖3所示,通過這些數據可以構造進行安全訪問控制的“訪問元數據”模型。通過模型可以控制某個用戶對于某個立方體的某個維度在什么時間內是否具有訪問的權限。
基于這種結構的訪問控制系統(tǒng),可以方便地添加、刪除和修改控制維度,能夠控制更多的用戶信息,例如可以再添加“銷售收入分析”控制維度,使得系統(tǒng)可以控制是否讓某些地區(qū)的用戶進行數據倉庫的訪問。維度越多,所構造的“訪問元數據”越復雜。
2.3 訪問流程設計
通常用戶訪問數據倉庫中的數據時,首先是用戶提出訪問請求,這些訪問請求被處理后傳送到數據倉庫的元數據處,再根據元數據的處理從存儲關系表或者多維數據庫中獲得用戶需要的數據,如圖4(a)所示。在這里,元數據起著極其重要的作用,它是到后臺數據庫中尋找數據的組織者,是用戶訪問數據的必經之路。鑒于此,把數據倉庫中的元數據擴展為兩部分,即本來的元數據(此處稱之為原元數據)和“訪問元數據”,在“訪問元數據”中加入用戶的訪問安全規(guī)則,通過規(guī)則控制用戶對數據倉庫的訪問,達到安全訪問數據倉庫數據的目的。這樣,加入訪問元數據之后的數據倉庫系統(tǒng)訪問如圖4(b)所示。
這樣,用戶登錄的過程可以細化為如下步驟:
?。?)首先用戶登錄需要經過身份驗證,通過身份驗證的用戶才可以進入系統(tǒng)。
?。?)獲取用戶要訪問什么信息,如張三在周一提出訪問促銷分析立方體的現(xiàn)金返點分析維度。
?。?)通過“訪問元數據”進行用戶權限鑒別,查看用戶是否具有相應的權限,如果有則可繼續(xù)數據倉庫數據的訪問,否則返回用戶無權訪問等信息。
2.4 可行性分析
在當今數據倉庫相關商業(yè)產品中,Oracle占據重要地位,Oracle 9i將數據庫、OLAP、Data Mining、J2EE以及Web集成于一體,通過適當的剪裁,可以靈活地適應多種網絡數據應用環(huán)境,非常便于實施開放的、跨平臺的應用邏輯,是一個優(yōu)秀的數據倉庫平臺解決方案。更重要的是Oracle 9i支持CWM元數據規(guī)范,提供了豐富的元數據操作接口。Oracle 9i的這些功能為基于元數據的安全模型的實施提供了方便。
圖5是通過“訪問元數據”的方式來實現(xiàn)對Oracle數據倉庫環(huán)境中關系數據和多維數據訪問的原理圖,創(chuàng)建“訪問元數據”以支持安全訪問控制,并且以API的方式提供給用戶使用。用戶只有通過增加的這套API才能訪問“訪問元數據”,達到控制安全的目的。這種方式可以無縫地應用到SMARTRIX數據倉庫中,因為這套系統(tǒng)恰恰是使用Oracle 9i做的開發(fā),在所有需要進行系統(tǒng)支持的用戶訪問和維護數據倉庫數據之前添加一個元數據訪問控制模塊后,只允許用戶訪問自己業(yè)務相關的模塊,即可大大增強原有系統(tǒng)的安全性。
支持人員進行數據訪問時,UserInfo函數將收集到支持人員的訪問需求,并把這些信息以參數的形式傳送到OLAP API,通過OLAP API對“訪問元數據”進行訪問。如果支持人員訪問的數據在他的權限之內,則允許支持人員繼續(xù)對存儲在數據倉庫中的數據進一步地訪問;否則,返回非法操作。CWM2是Oracle 9i中引入的標準,目前只能通過CWM2 PL/SQL packages來操作[4]。利用CWM2 API可以方便地構建訪問控制維和構建“訪問元數據”模型。
本文根據企業(yè)現(xiàn)有的SMARTRIX數據倉庫系統(tǒng)可能面臨的安全問題進行了分析,深入研究了數據倉庫分析決策支持系統(tǒng)的安全性需求以及元數據在數據倉庫中的重要作用,討論了基于元數據的數據倉庫安全模型。參考文獻[3]中提出一個基于元數據的數據倉庫安全模型,但是由于它需要MQL語言的支持,不易于在商業(yè)數據倉庫平臺上實施。針對這一問題,本文利用CWM元數據標準的規(guī)范化,對其模型進行改進,并提出了在商業(yè)數據倉庫平臺Oracle 9i平臺上的實現(xiàn)方案,有效解決了作者企業(yè)決策支持系統(tǒng)下一步可能面臨的安全訪問控制問題,確保了數據倉庫的安全性。相對原模型,本模型具有操作簡便、結構可控同時可以控制多個要素的優(yōu)點,不需要MQL語言的支持,當前通用的支持CWM規(guī)范的數據倉庫系統(tǒng)都可使用,這是對原模型功能的完善與增強,可以很好地解決現(xiàn)有系統(tǒng)面臨的安全威脅,這無論在理論上還是實踐上都具有重要的意義。
參考文獻
[1] KATIC N, QUIRCHMAYR G, SCHIEFER J, et al. A prototype model for data warehouse security based on metadata[C]. Proceeding of the 9th International Workshop on Database and Expert Systems Applications. 1998:300-308.
[2] PIATTINI M, RODEROJ A. Auditing data warehouse security[C]. Proceeding of IEEE 33rd Annual 1999 International Carnahan Conference on Security Technology. 1999: 255-261.
[3] STADUDT M, VADUVA A, VETTERLI T. The role of metadat for data warehouse[EB/OL][2000-05-18] http://www.informatik.uni-jena.de/dbis/lehre/ss2005/sem_dwh/lit/SVV99.pdf.
[4] WU N. Oracle9i OLAP CWM2 API使用指南. [2007-07-05] http://www.dwway.com/article-3084-1.html.