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