焦怡博,劉湘黔,崔亦博
(北京交通大學(xué) 計算機與信息技術(shù)學(xué)院,北京 100044)
數(shù)據(jù)倉庫安全模型研究與設(shè)計
焦怡博,劉湘黔,崔亦博
(北京交通大學(xué) 計算機與信息技術(shù)學(xué)院,北京 100044)
隨著數(shù)據(jù)倉庫的發(fā)展,安全問題日益突出,一方面數(shù)據(jù)倉庫本身需要足夠的開放性,另一方面數(shù)據(jù)倉庫的數(shù)據(jù)價值很大,要求對數(shù)據(jù)倉庫用戶加強數(shù)據(jù)訪問的限制。開放與限制,兩者的矛盾會嚴(yán)重制約數(shù)據(jù)倉庫使用。論述了數(shù)據(jù)倉庫安全問題產(chǎn)生背景及安全模型的重要性,針對數(shù)據(jù)倉庫的安全問題提出安全模型。該模型能夠減少數(shù)據(jù)倉庫會出現(xiàn)的安全問題,為企業(yè)進行數(shù)據(jù)倉庫設(shè)計提供參考。
數(shù)據(jù)倉庫;安全模型;元數(shù)據(jù);角色
由于全國各個城市軌道交通運營規(guī)模不斷擴大,各類數(shù)據(jù)的記錄和存儲而產(chǎn)生海量數(shù)據(jù)的分析、挖掘與應(yīng)用將成為軌道交通智能化數(shù)據(jù)管理的核心內(nèi)容。目前,國內(nèi)的軌道交通運營管理企業(yè)基本都擁有自動售檢票系統(tǒng)(AFC,Auto Fare Collection)等智能化的設(shè)備管理系統(tǒng),其中存儲著大量歷史數(shù)據(jù)。
傳統(tǒng)的數(shù)據(jù)庫已經(jīng)不適合存儲如此大量的數(shù)據(jù),體現(xiàn)在如下幾個方面:
(1)傳統(tǒng)數(shù)據(jù)庫系統(tǒng)僅能夠滿足數(shù)據(jù)的增、刪、改、查以及報表生成等功能不能滿足大量復(fù)雜查詢和即席查詢的需求。(2)傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)已經(jīng)不能滿足用戶對海量數(shù)據(jù)進行分析以及處理的需求,目前現(xiàn)有的數(shù)據(jù)庫系統(tǒng)是聯(lián)機事務(wù)處理系統(tǒng)(OLTP),而并不是聯(lián)機分析處理系。(3)傳統(tǒng)數(shù)據(jù)庫系統(tǒng)無法滿足對分析的數(shù)據(jù)對象進行靈活并多維的查詢。(4)傳統(tǒng)數(shù)據(jù)庫生產(chǎn)系統(tǒng)不能夠滿足城市軌道交通運營信息快速膨脹以及數(shù)據(jù)一體化整合的需求。
如何存儲并利用如此巨量數(shù)據(jù),成為當(dāng)今國內(nèi)軌道交通運營管理企業(yè)亟待解決的一個重要課題。
數(shù)據(jù)倉庫實質(zhì)上是一個數(shù)據(jù)集合,它是面向主題的、穩(wěn)定的、集成的并且隨時間不斷變化。 數(shù)據(jù)倉庫發(fā)展至今已成為相當(dāng)重要的數(shù)據(jù)重組技術(shù),它可以方便地構(gòu)建聯(lián)機分析處理(OLAP)、數(shù)據(jù)挖掘等高級數(shù)據(jù)分析應(yīng)用,數(shù)據(jù)倉庫系統(tǒng)為企業(yè)經(jīng)營決策提供了良好支持,已成為企業(yè)運營的一個重要環(huán)節(jié)[1]。
由于數(shù)據(jù)倉庫從多種數(shù)據(jù)源中提取數(shù)據(jù),并經(jīng)過分析、處理,其數(shù)據(jù)價值已經(jīng)提升;數(shù)據(jù)倉庫中數(shù)據(jù)共享的形式、范圍都在呈現(xiàn)出新的變化,再加上數(shù)據(jù)倉庫本身不是一個管理系統(tǒng),只是位于數(shù)據(jù)庫和分析系統(tǒng)應(yīng)用之間,主要用來組織數(shù)據(jù),并不知道用戶要訪問的內(nèi)容。也就是說數(shù)據(jù)倉庫更加側(cè)重于數(shù)據(jù)組織與重組,沒有固定的實現(xiàn)形式。
數(shù)據(jù)倉庫的本質(zhì)是開放的,數(shù)據(jù)倉庫的主旨之一是可以使用戶輕松訪問大量數(shù)據(jù)。因此任何安全模型都會限制實現(xiàn)該主旨,當(dāng)然也會成為數(shù)據(jù)倉庫設(shè)計的一大障礙。如果數(shù)據(jù)倉庫的分析員在使用數(shù)據(jù)倉庫時因為安全模型而受到限制,就會大大影響其分析的效率和正確率[2]。但是,基于某些商業(yè)需求,有時候數(shù)據(jù)倉庫會需要保持很高的安全性,因為一個潛在的數(shù)據(jù)漏洞有可能導(dǎo)致不可挽回的損失。因此,好的數(shù)據(jù)倉庫安全模型設(shè)計就顯得非常有必要。
國內(nèi)對于數(shù)據(jù)倉庫安全的研究還處于邊緣階段,國外對這方面的研究取得了很多成果。例如:
Weipple等人提出了一種基于數(shù)據(jù)倉庫予以環(huán)境的授權(quán)模型,論文中描述了數(shù)據(jù)倉庫中多維數(shù)據(jù)模型的基本要素、主題以及OLAP操作。但是,該模型還缺乏對概要數(shù)據(jù)操作的訪問控制表述以及訪問權(quán)限派生的問題[3]。
學(xué)者Remzi在文獻[4]中提出一種基于角色的數(shù)據(jù)倉庫安全訪問控制模型,該模型將安全對象建立在數(shù)據(jù)倉庫多維數(shù)據(jù)模型上,并對OLAP分析性操作進行訪問控制。
Indu Singh在論文[5]中總結(jié)了近幾年國外數(shù)據(jù)倉庫安全性方面研究,這些成果有很大的借鑒意義。
本文根據(jù)RBAC模型提出了一種基于角色的元數(shù)據(jù)訪問安全模型。
現(xiàn)今,數(shù)據(jù)倉庫安全模型已出現(xiàn)眾多安全機制。
Katic在論文中提到一種基于元數(shù)據(jù)的訪問模型,并在其WWW-DIS-DWH項目中根據(jù)用戶的權(quán)限大小,為不同的用戶組構(gòu)造不同的元數(shù)據(jù),然后將這些元數(shù)據(jù)分別賦予相應(yīng)用戶組訪問的權(quán)限。這并不影響用戶正常使用數(shù)據(jù)倉庫,因為只需要有限內(nèi)容的元數(shù)據(jù),用戶便可以得到自己想要的數(shù)據(jù)[6]。
Katic的安全模型依靠結(jié)構(gòu)化的描述語言(MQL)。用戶組的訪問控制以MQL語句存儲。當(dāng)接到用戶發(fā)送地請求后,先將它轉(zhuǎn)化為MQL查詢,再與相應(yīng)的用戶組的訪問權(quán)限對比。由于依靠MQL,使得Katic的安全模型有一定的專有性,不宜推廣。
本模型在借鑒Katic對于元數(shù)據(jù)訪問控制方法的同時,不使用MQL語言而是使用一種實時生成元數(shù)據(jù)控制表的機制,使得本模型相對于Katic安全模型有很大通用性。
不同用戶訪問數(shù)據(jù)倉庫中的數(shù)據(jù)時,有的用戶可以從高度集成的數(shù)據(jù)開始,然后不斷深入下鉆至詳細(xì)的數(shù)據(jù)中。有的用戶要求在某程度集成的層面上進行操作。這樣就很難管理不同用戶對數(shù)據(jù)的訪問。因此加入角色訪問控制機制,隔離用戶和元數(shù)據(jù),產(chǎn)生一個代理層,解耦了用戶和元數(shù)據(jù)的關(guān)系,方便管理者對用戶進行管理[7]。
將基于角色訪問控制和對元數(shù)據(jù)進行訪問限制兩方面結(jié)合起來能有效解決數(shù)據(jù)倉庫安全問題。
2.1 整體設(shè)計
安全模型整體設(shè)計如圖1所示。
圖1 安全模型整體設(shè)計
數(shù)據(jù)庫(DB,Database):存儲大量的歷史數(shù)據(jù)。
數(shù)據(jù)倉庫:從數(shù)據(jù)庫中經(jīng)過抽?。‥xtract)、轉(zhuǎn)換(Transform)、加載(Load),即ETL操作,將數(shù)據(jù)存儲到數(shù)據(jù)倉庫中。
元數(shù)據(jù):主要是描述數(shù)據(jù)屬性的信息,用來支持如指示存儲位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。元數(shù)據(jù)是數(shù)據(jù)倉庫環(huán)境的一個重要組成部分。元數(shù)據(jù)就是關(guān)于數(shù)據(jù)的數(shù)據(jù)。自從有了程序和數(shù)據(jù),元數(shù)據(jù)就是信息處理環(huán)境的一部分。但是在數(shù)據(jù)倉庫中,元數(shù)據(jù)扮演一個重要角色。正因為有了元數(shù)據(jù),數(shù)據(jù)倉庫才被有效地利用。元數(shù)據(jù)使最終用戶或決策支持系統(tǒng)(DSS)分析員能夠探索各種分析主題的可能情況[1]。
角色:給每個用戶分配不一樣的角色,不同的角色有不一樣的權(quán)限,可以訪問不同元數(shù)據(jù)。
角色管理器:可以通過角色管理器來管理角色的激活與去活、將角色分配給用戶、修改角色對應(yīng)的元數(shù)據(jù)等,角色管理器具體細(xì)節(jié)會在下文提到。
元數(shù)據(jù)控制器:通過管理1張元數(shù)據(jù)控制表來管理元數(shù)據(jù)訪問規(guī)則,具體細(xì)節(jié)會在下文提到。
元數(shù)據(jù)分配給相應(yīng)角色,同時為系統(tǒng)創(chuàng)建角色,并將角色分配給用戶。
整個系統(tǒng)流程如下:
(1)用戶登錄。進行登錄身份驗證,通過的用戶可以進入系統(tǒng)。(2)角色登錄。用戶申請角色登錄,通過角色身份驗證的用戶就擁有該角色訪問某些元數(shù)據(jù)的權(quán)限。(3)整理信息。用戶申請數(shù)據(jù),綜合整理用戶想要訪問的信息。如A用戶使用B角色,想要在C時間訪問D數(shù)據(jù)的E維度。(4)元數(shù)據(jù)控制器。為用戶生成元數(shù)據(jù)控制表,通過元數(shù)據(jù)控制表判斷該用戶是否具有訪問元數(shù)據(jù)的權(quán)限,如有則向用戶返回數(shù)據(jù)。
2.2 結(jié)構(gòu)設(shè)計
2.2.1 角色控制器設(shè)計
數(shù)據(jù)倉庫的安全大多借助其他傳統(tǒng)系統(tǒng),在傳統(tǒng)系統(tǒng)中最直接的安全措施就是訪問控制。訪問控制大多可以分為:基于對象的訪問控制、基于任務(wù)的訪問控制和基于角色的訪問控制?;诮巧脑L問控制(RBAC,Role-based Access Control)模型主要思想是用戶在系統(tǒng)中扮演不同角色,各角色在系統(tǒng)中擁有不同權(quán)限。通過對角色的管理來控制用戶對數(shù)據(jù)的訪問,角色成為模型中鏈接訪問主題和受控對象之間的一座橋梁[7]。圖2是對RBAC模型進行改進之后的模型。
圖2 角色控制模型
角色是角色控制器的核心。系統(tǒng)分配通過元數(shù)據(jù)分配使每個角色能訪問有限的元數(shù)據(jù),通過角色分配使每個用戶獲得一個或多個角色;用戶通過角色登錄進行身份驗證,通過后才具有該角色的權(quán)限;角色為用戶和元數(shù)據(jù)搭起了一座橋梁的同時也將元數(shù)據(jù)和用戶隔離開來,達(dá)到了訪問控制的目的。
用戶和一個或多個角色相關(guān)聯(lián),角色同一個或多個元數(shù)據(jù)相關(guān)聯(lián);角色可以根據(jù)實際的工作需要添加、刪除以及修改;已經(jīng)通過用戶身份驗證的用戶,在進入系統(tǒng)后如果需要使用角色訪問數(shù)據(jù),仍要進行角色身份驗證來激活相應(yīng)的角色。除此之外,角色之間可以定義一些關(guān)系,比如:繼承關(guān)系、排斥關(guān)系等,也可以按需要添加約束條件;比如:定義采購和財務(wù)兩個角色為互斥角色,則這兩個角色不能分配給一個用戶。
2.2.2 元數(shù)據(jù)控制器的設(shè)計
為方便理解元數(shù)據(jù)控制器的結(jié)構(gòu),這里構(gòu)造了6個表:用戶表、角色表、時間表、IP表、數(shù)據(jù)立方體表、維度表。這6個表用來模仿角色在訪問元數(shù)據(jù)時的6個維度:用戶、角色、時間、IP、維度、立方體。如:用戶張三使用角色系統(tǒng)管理員在時間2009.05.04訪問票務(wù)立方體的客流分析維度,IP為192.0.0.168。
如表1所示,用戶表記錄了用戶的ID和名字。
表1 用戶表
如表2所示,角色表記錄了系統(tǒng)所劃分的多種角色,如系統(tǒng)管理員、電工、數(shù)據(jù)分析組等等。
表2 角色表
時間表如表3所示,記錄了某角色什么時間按訪問哪些立方體或元數(shù)據(jù)。如某角色只被允許在月末的時候訪問票務(wù)分析立方體。
表3 時間表
如表4所示,記錄了系統(tǒng)允許使用的IP地址,非正常IP系統(tǒng)可以進行限制,禁止其訪問重要數(shù)據(jù)。
數(shù)據(jù)立方體表如表5所示,描述系統(tǒng)中有哪些可以訪問的數(shù)據(jù)立方體,如票務(wù)分析、行車記錄等。
表4 IP表
表5 數(shù)據(jù)立方體表
維度表如表6所示,記錄了各個立方體中可供用戶分析的維度,如票務(wù)立方體可供分析的維度有客流分析、OD分析等。
表6 維度表
通過以上6個表數(shù)據(jù)構(gòu)建一個元數(shù)據(jù)訪問控制表,如表7所示。每次有訪問請求時,系統(tǒng)會根據(jù)用戶生成1張元數(shù)據(jù)訪問控制表,將用戶所扮演的角色,各角色可以訪問的立方體,各立方體擁有的維度等信息都保存到元數(shù)據(jù)訪問控制表中,通過查詢元數(shù)據(jù)訪問控制表,就能得到該用戶是否具有訪問數(shù)據(jù)權(quán)限,根據(jù)元數(shù)據(jù)訪問控制表返回數(shù)據(jù)。
表7 元數(shù)據(jù)訪問控制表
元數(shù)據(jù)訪問控制表具有以下特性:
(1)易用性。系統(tǒng)管理者可以隨時根據(jù)需求對上述維度(角色、時間、IP、維度、立方體)進行增加、修改等操作,通過調(diào)整用戶組對應(yīng)的元數(shù)據(jù)定義,就可以實現(xiàn)安全訪問控制策略的變換。(2)通用性。元數(shù)據(jù)訪問控制表可以在任何數(shù)據(jù)倉庫模型中進行設(shè)置。
2.3 模型優(yōu)勢
(1)便于數(shù)據(jù)系統(tǒng)的集成。用戶訪問控制都是集成在一起,只要修改角色控制器和元數(shù)據(jù)控制器就可以控制整個系統(tǒng)的訪問。(2)從角色以及元數(shù)據(jù)兩方面控制了用戶的訪問,安全性增加。(3)用戶在進行數(shù)據(jù)訪問時,元數(shù)據(jù)控制器會根據(jù)元數(shù)據(jù)訪問表返回其有權(quán)訪問的數(shù)據(jù),其他數(shù)據(jù)被屏蔽了,這就減少了用戶非法訪問的企圖,增加了系統(tǒng)的安全性。(4)用戶只需要進行一次用戶登錄身份驗證和一次角色身份驗證,就可以正常訪問其需要的數(shù)據(jù)。在保證數(shù)據(jù)安全性的前提下,保證用戶訪問數(shù)據(jù)倉庫的易用性。做到了安全性與易用性的兼顧。(5)本模型具有良好的通用性,可以移植到大部分?jǐn)?shù)據(jù)倉庫系統(tǒng)中。
針對數(shù)據(jù)倉庫安全性不足的狀況,本文基于角色控制和元數(shù)據(jù)控制的方法提出了一種數(shù)據(jù)倉庫安全模型。該模型通過角色管理,限制訪問元數(shù)據(jù)達(dá)到訪問控制的目的,有效提高了數(shù)據(jù)倉庫的安全性,為數(shù)據(jù)倉庫系統(tǒng)的設(shè)計提供了參考。
[1] Willianm H.Lnmon.Building the Data Warehouse[M].王志海,譯.北京:機械工業(yè)出版社,2000.
[2] 孫 濤.淺析數(shù)據(jù)倉庫安全問題及措施[J].電子技術(shù)與軟件工程,2014(13).
[3] 余文霞.淺談數(shù)據(jù)倉庫安全問題及安全措施[J].Science &Technology Information ,2013(4).
[4] 張大剛.數(shù)據(jù)倉庫基于角色強制訪問控制研究[J].計算機與現(xiàn)代化,2011(5).
[5] Indu Singh,Manoj Kumar.Evaluation of approaches for designing secure data warehouse[C].International Conference on Advances in Computing,2012.
[6] 馬艷鋒,譚立彥.基于元數(shù)據(jù)的數(shù)據(jù)倉庫安全模型實現(xiàn)研究[J].Microcomputer &Its Applications,2012,31(9).
[7] 李 毅,劉 海,王岳斌.基于角色的數(shù)據(jù)倉庫分級安全模型的形式化研究[J].計算機應(yīng)用于軟件,2010,27 (5).
責(zé)任編輯 徐侃春
Security model for data warehouse
JIAO Yibo,LIU Xiangqian,CUI Yibo
( School of Computer and Information Technology,Beijing Jiaotong University,Beijing 100044,China)
With the development of data warehouse,the security problem is becoming more and more serious.On the one hand,the data warehouse itself needs enough openness.On the other hand,the data warehouse is of great value,which is required to strengthen the restriction of data access for the users.Opening and restriction,the contradiction between the two will seriously restrict the use of data warehouse.This article discussed the background of data warehouse security and the importance of security model,put forward a security model for the security of data warehouse.The security model could reduce security problems and provide a reference for the design of data warehouse to the enterprise.
data warehouse;security model;metadata;role
U29-39
A
1005-8451(2016)09-0088-04
2016-06-15
焦怡博,在讀碩士研究生;劉湘黔,副教授。