繆 燕 孫 燕 陳曉娟 宋 偉
1(北京許繼電氣有限公司 北京 100085)2(武漢大學(xué)計(jì)算機(jī)學(xué)院 湖北 武漢 430074)
數(shù)據(jù)庫(kù)技術(shù)作為計(jì)算機(jī)系統(tǒng)軟件,一直以來(lái)都是信息系統(tǒng)中數(shù)據(jù)存儲(chǔ)的核心。傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)具備堅(jiān)實(shí)的理論基礎(chǔ)、完備的配套工具和靈活的數(shù)據(jù)表達(dá)能力,因此以關(guān)系數(shù)據(jù)庫(kù)為代表的傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)在產(chǎn)業(yè)領(lǐng)域取得了巨大成功。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)存儲(chǔ)管理變得越來(lái)越重要,無(wú)論從數(shù)據(jù)規(guī)模還是數(shù)據(jù)管理復(fù)雜度上都對(duì)數(shù)據(jù)存儲(chǔ)和管理提出了越來(lái)越高的要求。近年來(lái)數(shù)據(jù)庫(kù)已經(jīng)應(yīng)用到眾多新興應(yīng)用領(lǐng)域,如社交網(wǎng)絡(luò)、移動(dòng)數(shù)據(jù)、地理信息系統(tǒng)、圖數(shù)據(jù)管理等,各種半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的內(nèi)在特征和服務(wù)特性都使得傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)效率低下甚至無(wú)能為力。關(guān)系數(shù)據(jù)庫(kù)具有統(tǒng)一的數(shù)據(jù)存儲(chǔ)和處理規(guī)范,在管理結(jié)構(gòu)化數(shù)據(jù)方面具有優(yōu)勢(shì),但是在表達(dá)復(fù)雜語(yǔ)義方面則顯得效率低下。
面向?qū)ο竽P图懊嫦驅(qū)ο蟛僮鞯某霈F(xiàn),彌補(bǔ)了關(guān)系數(shù)據(jù)庫(kù)基于關(guān)系對(duì)象操作在復(fù)雜語(yǔ)義表達(dá)性和復(fù)雜語(yǔ)義操作方面存在的不足。但是面向?qū)ο髷?shù)據(jù)庫(kù)由于對(duì)數(shù)據(jù)對(duì)象進(jìn)行結(jié)構(gòu)化封裝,又使得對(duì)象數(shù)據(jù)庫(kù)存在數(shù)據(jù)冗余大、數(shù)據(jù)表達(dá)靈活性差等缺點(diǎn)。為克服關(guān)系數(shù)據(jù)庫(kù)和對(duì)象數(shù)據(jù)庫(kù)的不足之處,出現(xiàn)了對(duì)象關(guān)系數(shù)據(jù)庫(kù)。對(duì)象關(guān)系數(shù)據(jù)庫(kù)具有關(guān)系數(shù)據(jù)庫(kù)表達(dá)靈活、理論完備的優(yōu)勢(shì),又支持面向?qū)ο筇卣鞯臄?shù)據(jù)操作,具有語(yǔ)義表達(dá)能力強(qiáng)、數(shù)據(jù)對(duì)象存儲(chǔ)持久等諸多優(yōu)勢(shì)。
近年隨著大數(shù)據(jù)應(yīng)用的發(fā)展與普及,對(duì)象關(guān)系數(shù)據(jù)庫(kù)受到越來(lái)越廣泛的關(guān)注,知名的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)PostgreSQL就是一種對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。PostgreSQL數(shù)據(jù)庫(kù)在復(fù)雜數(shù)據(jù)管理領(lǐng)域擴(kuò)張迅速,已被廣泛應(yīng)用于地理信息系統(tǒng)、云數(shù)據(jù)庫(kù)、圖數(shù)據(jù)管理等諸多領(lǐng)域,但對(duì)于PostgreSQL的數(shù)據(jù)訪(fǎng)問(wèn)授權(quán)管理則顯得有些滯后。
數(shù)據(jù)訪(fǎng)問(wèn)授權(quán)是信息系統(tǒng)的基本核心功能,也是網(wǎng)絡(luò)安全等級(jí)保護(hù)的重要組成部分。傳統(tǒng)商用關(guān)系型數(shù)據(jù)庫(kù)如Oracle、SqlServer、DB2等都有一整套完備的數(shù)據(jù)訪(fǎng)問(wèn)授權(quán)邏輯和實(shí)現(xiàn),但是在對(duì)象關(guān)系數(shù)據(jù)庫(kù)中(以最新版PostgreSQL12為例)仍沒(méi)有嚴(yán)格意義上完備的強(qiáng)制訪(fǎng)問(wèn)控制。這給對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)在更多商業(yè)領(lǐng)域應(yīng)用造成了巨大困難。
如何基于對(duì)象關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)模式和服務(wù)特點(diǎn),設(shè)計(jì)適用于對(duì)象關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)制訪(fǎng)問(wèn)控制模型成為亟需解決的理論和應(yīng)用問(wèn)題。本文以PostgreSQL為研究對(duì)象,設(shè)計(jì)并實(shí)現(xiàn)了一種對(duì)象關(guān)系數(shù)據(jù)庫(kù)環(huán)境下的強(qiáng)制訪(fǎng)問(wèn)控制方法,該訪(fǎng)問(wèn)控制模型實(shí)現(xiàn)了完備的強(qiáng)制訪(fǎng)問(wèn)控制邏輯,同時(shí)支持多數(shù)據(jù)源、細(xì)粒度授權(quán)的特點(diǎn),通過(guò)在PostgreSQL12中的實(shí)驗(yàn)證明,設(shè)計(jì)的強(qiáng)制訪(fǎng)問(wèn)控制方法具有授權(quán)訪(fǎng)問(wèn)靈活、數(shù)據(jù)維護(hù)開(kāi)銷(xiāo)小的優(yōu)點(diǎn)。
20世紀(jì)70年代,Bell等[1]首次提出可證明安全的強(qiáng)制訪(fǎng)問(wèn)控制模型,稱(chēng)為Bell-La Padula(BLP)模型,該模型針對(duì)操作系統(tǒng)安全,最初主要應(yīng)用于軍事安全策略實(shí)現(xiàn)。此后,為了優(yōu)化BLP模型,避免引發(fā)因使用強(qiáng)制訪(fǎng)問(wèn)控制模型而造成的隱通道問(wèn)題,國(guó)內(nèi)外的學(xué)者們提出了多級(jí)安全關(guān)系數(shù)據(jù)模型,其中包括Sea View模型[2]和Jajodia-Sandhu模型[3]等。
在BLP強(qiáng)制訪(fǎng)問(wèn)控制模型中,實(shí)體被分為主體和客體,每個(gè)實(shí)體都被賦予了相應(yīng)的安全等級(jí)。模型通過(guò)比較主體和客體的安全等級(jí)來(lái)決定主體對(duì)客體的操作授權(quán)[4]。在BLP模型中,主體不能讀安全等級(jí)比自己高的客體,也不能寫(xiě)安全等級(jí)比自己低的客體。因此,信息只能從低安全級(jí)向高安全級(jí)流動(dòng)或者在同安全級(jí)之間流動(dòng),有效防止了由低安全等級(jí)的用戶(hù)讀取高安全等級(jí)的數(shù)據(jù)造成的信息泄露。然而當(dāng)BLP模型的讀寫(xiě)規(guī)則應(yīng)用在數(shù)據(jù)庫(kù)系統(tǒng)中的時(shí)候,低安全等級(jí)的用戶(hù)擁有寫(xiě)高安全等級(jí)數(shù)據(jù)的權(quán)限,可能因此造成不恰當(dāng)?shù)闹貙?xiě)操作,給數(shù)據(jù)安全帶來(lái)隱患[5]。為此研究者們提出了改進(jìn)的BLP模型,只有當(dāng)主體的安全等級(jí)和客體的安全等級(jí)相同時(shí),主體才能對(duì)客體進(jìn)行寫(xiě)操作,從而避免了低安全等級(jí)用戶(hù)對(duì)高安全等級(jí)數(shù)據(jù)重寫(xiě)所造成的問(wèn)題。
除此之外,為了能讓BLP模型更好地應(yīng)用于數(shù)據(jù)庫(kù)系統(tǒng),出現(xiàn)了各類(lèi)改進(jìn)工作。文獻(xiàn)[6]對(duì)BLP模型進(jìn)行進(jìn)一步優(yōu)化,使其契合屬性安全值的特點(diǎn),形成一個(gè)靈活的基于屬性安全值的強(qiáng)制訪(fǎng)問(wèn)控制模型。文獻(xiàn)[7]基于BLP模型提出了一種具有自主控制特性的強(qiáng)制訪(fǎng)問(wèn)控制模型。文獻(xiàn)[8]從安全模型構(gòu)建入手,對(duì)智能終端的Web操作系統(tǒng)進(jìn)行抽象建模,并重定義BLP模型的元素,增強(qiáng)主客體的訪(fǎng)問(wèn)控制以提高其機(jī)密性。
Sea View模型引入了多實(shí)例和多級(jí)關(guān)系。多實(shí)例和多級(jí)關(guān)系的存在解決了由于主鍵唯一性導(dǎo)致的隱通道問(wèn)題。但因Sea View安全數(shù)據(jù)視圖模型標(biāo)識(shí)粒度較細(xì)并定義了完整性規(guī)則,這導(dǎo)致一個(gè)寫(xiě)操作會(huì)產(chǎn)生多個(gè)元組,且元組個(gè)數(shù)可能達(dá)到非關(guān)鍵字屬性個(gè)數(shù)的指數(shù)級(jí),這些元組中得到屬性的產(chǎn)生是不合邏輯的。同時(shí),其多級(jí)關(guān)系存取的處理也會(huì)嚴(yán)重降低系統(tǒng)的性能。
針對(duì)Sea View安全數(shù)據(jù)視圖模型中存在的問(wèn)題,Jajodia-Sandhu模型[3]重新定義了多實(shí)例完整性,并且定義了空值完整性和實(shí)例間完整性,消除了Sea View模型中的多值依賴(lài),提高了數(shù)據(jù)安全性和完整性,并且減少了寫(xiě)操作產(chǎn)生的多實(shí)例的個(gè)數(shù)。不過(guò)由于該模型中的插入和更新操作仍然會(huì)存在著一定數(shù)量的多實(shí)例[9]。此后,Sandhu等[11]又在Jajodia-Sandhu模型的基礎(chǔ)上,吸收了Sea View模型的優(yōu)點(diǎn),并引入了Simith-Winslett模型[10]中基于信任的語(yǔ)義概念,提出了MLR綜合模型。該模型提供了元素粒度的強(qiáng)制訪(fǎng)問(wèn)控制,定義了數(shù)據(jù)借用關(guān)系,即高安全等級(jí)的主體可以從低安全級(jí)別的主體借用數(shù)據(jù),不過(guò)其控制較為復(fù)雜,在實(shí)現(xiàn)的過(guò)程中可能存在安全隱患。
此后,國(guó)內(nèi)外數(shù)據(jù)庫(kù)安全領(lǐng)域的學(xué)者們針對(duì)各種數(shù)據(jù)庫(kù)的實(shí)際安全需求進(jìn)行了大量的強(qiáng)制訪(fǎng)問(wèn)控制研究。文獻(xiàn)[12]提出了一個(gè)安全數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)控制模型,包括一個(gè)多層關(guān)系模型和一個(gè)增強(qiáng)自主訪(fǎng)問(wèn)控制能力的元素級(jí)粒度的授權(quán),在多層關(guān)系模型中拓展了MLR模型,使其支持了傳遞借用和多值借用。文獻(xiàn)[13]提出一種新的云計(jì)算環(huán)境中數(shù)據(jù)分布式強(qiáng)制訪(fǎng)問(wèn)控制算法。文獻(xiàn)[14]提出一種協(xié)作環(huán)境下具有時(shí)空約束的強(qiáng)制訪(fǎng)問(wèn)控制模型,將任務(wù)、時(shí)間、空間等要素進(jìn)行綜合考慮,既增強(qiáng)了訪(fǎng)問(wèn)控制模型的安全性,又滿(mǎn)足了協(xié)作環(huán)境下訪(fǎng)問(wèn)控制的靈活性。文獻(xiàn)[15]采用數(shù)據(jù)庫(kù)資源的染色標(biāo)記方法,提出了一種基于染色標(biāo)記的數(shù)據(jù)庫(kù)安全強(qiáng)制訪(fǎng)問(wèn)控制體系。文獻(xiàn)[16]針對(duì)實(shí)時(shí)操作系統(tǒng)資源少、開(kāi)銷(xiāo)小、實(shí)時(shí)性要求嚴(yán)格等特點(diǎn),提出了一種針對(duì)RTOS的輕量級(jí)強(qiáng)制訪(fǎng)問(wèn)控制模型。文獻(xiàn)[17]基于對(duì)象代理特性提出了一個(gè)適用于TOTEM數(shù)據(jù)庫(kù)的強(qiáng)制訪(fǎng)問(wèn)控制模型。文獻(xiàn)[18]針對(duì)SQL注入、內(nèi)部人員權(quán)限濫用等非法行為,提出可信計(jì)算環(huán)境下的數(shù)據(jù)庫(kù)強(qiáng)制行為控制(MBC)模型。
現(xiàn)有數(shù)據(jù)庫(kù)安全訪(fǎng)問(wèn)控制研究重點(diǎn)側(cè)重關(guān)系數(shù)據(jù)庫(kù)環(huán)境中的數(shù)據(jù)授權(quán)訪(fǎng)問(wèn),但是并沒(méi)有考慮到對(duì)象關(guān)系數(shù)據(jù)庫(kù)給數(shù)據(jù)授權(quán)帶來(lái)的新問(wèn)題,如數(shù)據(jù)對(duì)象之間的繼承關(guān)系、數(shù)據(jù)對(duì)象的溯源操作帶來(lái)的隱私泄露問(wèn)題等。因此需要提出一種安全、實(shí)用的強(qiáng)制訪(fǎng)問(wèn)控制邏輯和實(shí)現(xiàn)機(jī)制,以滿(mǎn)足目前對(duì)于對(duì)象關(guān)系數(shù)據(jù)庫(kù)的巨大應(yīng)用需求。
現(xiàn)有對(duì)象關(guān)系數(shù)據(jù)庫(kù)的自主訪(fǎng)問(wèn)控制安全性能有限,在實(shí)際應(yīng)用場(chǎng)景中也存在授權(quán)機(jī)制不靈活的限制。現(xiàn)有對(duì)象關(guān)系數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)控制機(jī)制存在權(quán)限管理不當(dāng),可能引發(fā)秘密數(shù)據(jù)泄露,在很多方面也存在安全隱患,并且粗粒度的訪(fǎng)問(wèn)控制也缺乏靈活性。目前的對(duì)象關(guān)系數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)控制中,可以進(jìn)行訪(fǎng)問(wèn)控制的數(shù)據(jù)庫(kù)對(duì)象的最小粒度是類(lèi),因此在PostgreSQL中使用訪(fǎng)問(wèn)控制列表無(wú)法限制數(shù)據(jù)庫(kù)用戶(hù)對(duì)數(shù)據(jù)庫(kù)列級(jí)對(duì)象和行級(jí)對(duì)象的訪(fǎng)問(wèn),使得PostgreSQL的訪(fǎng)問(wèn)控制機(jī)制并不能滿(mǎn)足實(shí)際應(yīng)用中細(xì)粒度訪(fǎng)問(wèn)控制的需求。
在對(duì)象關(guān)系數(shù)據(jù)庫(kù)實(shí)際應(yīng)用中,用戶(hù)會(huì)根據(jù)不同的使用目的,生成不同類(lèi)型的繼承類(lèi),包括SELECTED選擇型繼承類(lèi)、JOIN連接型繼承類(lèi)、UNION合并型繼承類(lèi)和GROUP分組型繼承類(lèi)。其中對(duì)于擁有多個(gè)數(shù)據(jù)源(即源類(lèi))的繼承類(lèi),僅僅只在其屬性上分配一個(gè)統(tǒng)一的安全標(biāo)簽可能會(huì)造成部分源類(lèi)的數(shù)據(jù)無(wú)法通過(guò)繼承類(lèi)被合法用戶(hù)訪(fǎng)問(wèn)的問(wèn)題。為了讓基于對(duì)象關(guān)系特性的強(qiáng)制訪(fǎng)問(wèn)控制模型為多源繼承類(lèi)提供更為方便靈活的訪(fǎng)問(wèn)控制,本文針對(duì)多源繼承類(lèi)在理論和實(shí)際應(yīng)用方面的特性,從更細(xì)的粒度上探討了各種繼承類(lèi)中屬性級(jí)對(duì)象的安全等級(jí)管理,并在此基礎(chǔ)上闡述繼承類(lèi)上細(xì)粒度訪(fǎng)問(wèn)控制的過(guò)程。
為方便描述訪(fǎng)問(wèn)控制規(guī)則及介紹對(duì)象安全等級(jí)管理方法,表1列出了本文中使用的符號(hào)及其意義。
表1 正文符號(hào)表及意義
在詳細(xì)介紹對(duì)象關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)制訪(fǎng)問(wèn)控制規(guī)則之前,先對(duì)用到的基本概念進(jìn)行定義。
(1) 安全級(jí)別序列。安全級(jí)別序列是一個(gè)有n個(gè)元素的有序序列,用SL=(sl1,sl2,…,sln)表示,其中sli(i=1,2,…,n)表示第i個(gè)元素,對(duì)于任意兩個(gè)元素sli和slj,若i (2) 類(lèi)別范圍集合。類(lèi)別范圍集合是一個(gè)有m個(gè)元素的集合,用CR={cr1,cr2,…,crm}表示,其中cri(i=1,2,…,m)表示第i個(gè)元素,對(duì)于任意兩個(gè)元素cri和crj,若i≠j,則有cri≠crj。 (3) 安全標(biāo)簽。一個(gè)安全標(biāo)簽SecL由一個(gè)安全級(jí)別元素和一個(gè)類(lèi)別范圍集合組成,表示為SecL=sl:cr,其中sl∈SL為安全級(jí)別序列SL中的一個(gè)元素,cr為空集或者類(lèi)別范圍集合CR中的一個(gè)或多個(gè)元素的集合。數(shù)據(jù)庫(kù)對(duì)象的安全標(biāo)簽表示為SecLobj=SLobj:CRobj,請(qǐng)求訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)對(duì)象的主體的安全標(biāo)簽表示為SecLsub=SLsub:CRsub。 (4) 安全等級(jí)。數(shù)據(jù)庫(kù)對(duì)象的安全等級(jí)由數(shù)據(jù)庫(kù)對(duì)象的安全標(biāo)簽來(lái)體現(xiàn)。對(duì)于數(shù)據(jù)庫(kù)對(duì)象obj1和obj2,obj1的安全標(biāo)簽SecLobj1表示為SLobj1:CRobj1,obj2的安全標(biāo)簽SecLobj2表示為SLobj2:CRobj2。當(dāng)且僅當(dāng)SLobj1>SLobj2且CRobj1?CRobj2,認(rèn)為obj1的安全等級(jí)高于obj2的安全等級(jí);當(dāng)且僅當(dāng)SLobj1=SLobj2且CRobj1=CRobj2時(shí),認(rèn)為obj1的安全等級(jí)等obj2的安全等級(jí)。 (5) 源類(lèi)。對(duì)象關(guān)系數(shù)據(jù)庫(kù)中存在著繼承關(guān)系,即通過(guò)特定的繼承規(guī)則從源類(lèi)繼承部分或全部屬性值,這里的源類(lèi)就是繼承類(lèi)中部分屬性的數(shù)據(jù)源。一個(gè)繼承類(lèi)可以有一個(gè)或多個(gè)源類(lèi),一個(gè)繼承類(lèi)的n個(gè)源類(lèi)用集合SC表示,SC={SCi|i=1,2,…,n}。 (6) 繼承類(lèi)。繼承類(lèi)中必定會(huì)有虛屬性,即根據(jù)規(guī)則從源類(lèi)中繼承的屬性,這些屬性的內(nèi)容并未實(shí)際存儲(chǔ)。同時(shí)繼承類(lèi)中也可以新增屬性,這些屬性為繼承類(lèi)中實(shí)際存儲(chǔ)的實(shí)屬性,繼承類(lèi)中的實(shí)屬性個(gè)數(shù)可為0個(gè)或若干個(gè)。繼承類(lèi)用IC表示,繼承類(lèi)的第i個(gè)虛屬性表示為IC.vai,繼承類(lèi)的第j個(gè)實(shí)屬性表示為IC.raj,則繼承類(lèi)的安全標(biāo)簽表示為SecLIC=SLIC:CRIC,繼承類(lèi)的第i個(gè)虛屬性的安全標(biāo)簽表示為SecLIC.vai=SLIC.vai:CRIC.vai,繼承類(lèi)的第j個(gè)實(shí)屬性的安全標(biāo)簽表示為SecLIC.raj=SLICIC.raj:CRIC.raj。 (7) UNION繼承類(lèi)。UNION繼承類(lèi)合并了若干個(gè)源類(lèi)中共有屬性的選擇型繼承結(jié)果,用UIC表示,那么代表其安全等級(jí)的安全標(biāo)簽表示為SecLUIC=SLUIC:CRUIC。 對(duì)象關(guān)系數(shù)據(jù)庫(kù)強(qiáng)制訪(fǎng)問(wèn)控制的安全模型主要基于BLP(Bell-La Padula)安全模型,該模型如圖1所示。數(shù)據(jù)庫(kù)系統(tǒng)中的每一個(gè)數(shù)據(jù)庫(kù)對(duì)象都被分配一個(gè)安全標(biāo)簽,這個(gè)安全標(biāo)簽反映了數(shù)據(jù)庫(kù)對(duì)象的安全等級(jí)。數(shù)據(jù)庫(kù)中除了數(shù)據(jù)庫(kù)、源類(lèi)、繼承類(lèi)等數(shù)據(jù)庫(kù)對(duì)象被分配了安全標(biāo)簽外,源類(lèi)的實(shí)屬性、繼承類(lèi)的虛屬性和實(shí)屬性也被分配了安全標(biāo)簽。同時(shí),對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作和訪(fǎng)問(wèn)的主體也被授予了一個(gè)安全標(biāo)簽。當(dāng)主體訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)對(duì)象時(shí),需要比較二者的安全標(biāo)簽是否符合主體訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)對(duì)象管理規(guī)則。 圖1 對(duì)象關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)制訪(fǎng)問(wèn)安全模型 在對(duì)象關(guān)系數(shù)據(jù)庫(kù)中,具有多個(gè)源類(lèi)的繼承類(lèi)有兩種,分別是UNION繼承類(lèi)和JOIN繼承類(lèi)。其中,UNION繼承類(lèi)存在著類(lèi)中不同實(shí)例的同一屬性?xún)?nèi)容來(lái)源于多個(gè)源類(lèi)中對(duì)應(yīng)屬性的內(nèi)容。下面將結(jié)合具體的例子說(shuō)明這種多源類(lèi)繼承類(lèi)上在進(jìn)行強(qiáng)制訪(fǎng)問(wèn)控制時(shí)可能出現(xiàn)的問(wèn)題。 假設(shè)音樂(lè)網(wǎng)站的數(shù)據(jù)庫(kù)中有兩個(gè)基本類(lèi),命名為vipmusic和freemusic,分別存儲(chǔ)付費(fèi)歌曲和免費(fèi)歌曲的信息。其中,vipmusic類(lèi)和freemusic類(lèi)中共有的屬性有編號(hào)number、歌名name、歌手singer和歌曲音頻內(nèi)容context,不過(guò)付費(fèi)歌曲的音頻內(nèi)容只有在用戶(hù)付費(fèi)成為會(huì)員后才能聽(tīng)到,免費(fèi)的歌曲音頻內(nèi)容普通用戶(hù)和會(huì)員都可以聽(tīng)到。為了方便在音樂(lè)網(wǎng)站的構(gòu)建中對(duì)歌曲共有的屬性信息進(jìn)行統(tǒng)一的獲取和處理,需要構(gòu)建一個(gè)提供所有歌曲信息的更抽象的類(lèi)。UNION繼承類(lèi)便可以滿(mǎn)足這個(gè)需求,將vipmusic和freemusic兩個(gè)基本類(lèi)作為源類(lèi),創(chuàng)建一個(gè)名為music的UNION繼承類(lèi),如圖2所示。 圖2 UNION繼承類(lèi)中多數(shù)據(jù)源屬性示例 那么通過(guò)直接對(duì)UNION繼承類(lèi)music進(jìn)行查詢(xún)即可得到所有歌曲共有屬性的信息。music類(lèi)中繼承自源類(lèi)的屬性均為虛屬性,其擴(kuò)展定義的屬性comment為實(shí)屬性,表示網(wǎng)站用戶(hù)對(duì)歌曲的評(píng)論,其中music類(lèi)中所有實(shí)例的虛屬性?xún)?nèi)容都不是實(shí)際存儲(chǔ)在本地的,而是通過(guò)訪(fǎng)問(wèn)源類(lèi)vipmusic和freemusic中對(duì)應(yīng)屬性的內(nèi)容而得到的,實(shí)屬性的內(nèi)容是實(shí)際存儲(chǔ)在本地的。 假設(shè)源類(lèi)vipmusic中,除了表示歌曲音頻內(nèi)容的context屬性之外的所有屬性安全級(jí)別為sl1,例如SLvipmusic.name=sl1,而context屬性的安全級(jí)別為sl5,即SLvipmusic.context=sl5。源類(lèi)freemusic中,所有屬性的安全級(jí)別均為sl1,例如SLfreemusic.name=sl1,SLfreemusic.context=sl1。若UNION繼承類(lèi)music的安全級(jí)別也為sl1,那么有music中除context屬性的以外的所有屬性的安全級(jí)別為sl1,context屬性安全級(jí)別為sl5。對(duì)于context外的其他屬性,顯然能訪(fǎng)問(wèn)源類(lèi)中這些屬性?xún)?nèi)容的用戶(hù)也能通過(guò)UNION繼承類(lèi)music訪(fǎng)問(wèn)到這些屬性?xún)?nèi)容。然而,只有安全級(jí)別大于等于sl5的用戶(hù)才可以通過(guò)music同時(shí)訪(fǎng)問(wèn)到兩個(gè)源類(lèi)中context屬性的內(nèi)容。安全級(jí)別為sl1、sl2、sl3和sl4的用戶(hù)可以訪(fǎng)問(wèn)源類(lèi)freemusic中的context屬性?xún)?nèi)容,卻無(wú)法通過(guò)繼承類(lèi)music而訪(fǎng)問(wèn)到源類(lèi)freemusic中的context屬性?xún)?nèi)容。因此,可以看到UNION繼承類(lèi)上的強(qiáng)制訪(fǎng)問(wèn)控制在某些情況下阻止了部分擁有源類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限的用戶(hù)通過(guò)UNION繼承類(lèi)訪(fǎng)問(wèn)源類(lèi)數(shù)據(jù),從而影響了UNION繼承類(lèi)在實(shí)際條件下的使用。 為了解決多源類(lèi)繼承類(lèi)中多數(shù)據(jù)源虛屬性的內(nèi)容在強(qiáng)制訪(fǎng)問(wèn)控制模型中的訪(fǎng)問(wèn)受限問(wèn)題,本文設(shè)計(jì)了多數(shù)據(jù)源虛屬性的安全等級(jí)細(xì)化方法,為多源類(lèi)繼承類(lèi)上靈活的細(xì)粒度訪(fǎng)問(wèn)控制提供支持。 對(duì)于一個(gè)UNION繼承類(lèi)UIC,其有m個(gè)源類(lèi)SC={SCi|i=1,2,…,m},UIC有從這m個(gè)源類(lèi)中繼承的n個(gè)虛屬性va={vaj|j=1,2,…,n}。這些虛屬性都是擁有多個(gè)數(shù)據(jù)源的虛屬性,且每個(gè)虛屬性的數(shù)據(jù)源為m個(gè)源類(lèi)中與這個(gè)虛屬性相對(duì)應(yīng)的屬性。 任一虛屬性va的安全標(biāo)簽只有一個(gè),表示為SecLUIC.va=SLUIC.va:CRUIC.va,其中SLUIC.va為va的安全級(jí)別,CRUIC.va為va的類(lèi)別范圍,該安全標(biāo)簽代表了va的安全等級(jí)。因此,UNION繼承類(lèi)虛屬性va在所有UIC實(shí)例中對(duì)應(yīng)內(nèi)容都由同一個(gè)安全標(biāo)簽SecLUIC.va來(lái)進(jìn)行訪(fǎng)問(wèn)控制。 為了支持多源類(lèi)繼承類(lèi)UIC中多數(shù)據(jù)源屬性上的細(xì)粒度訪(fǎng)問(wèn)控制,設(shè)計(jì)了UIC虛屬性的安全等級(jí)細(xì)化方法,使得同一屬性中來(lái)自不同數(shù)據(jù)源的屬性?xún)?nèi)容擁有各自的安全等級(jí)。其具體表現(xiàn)為:對(duì)于有m個(gè)源類(lèi)的UIC中的任一虛屬性va,設(shè)置一個(gè)安全標(biāo)簽集SecLUIC.va,該安全標(biāo)簽集合中默認(rèn)有m個(gè)安全標(biāo)簽,va中從一個(gè)源類(lèi)繼承的屬性?xún)?nèi)容與一個(gè)安全標(biāo)簽對(duì)應(yīng)。UIC虛屬性va安全等級(jí)的細(xì)化實(shí)際上就是將UIC所有實(shí)例的va屬性?xún)?nèi)容根據(jù)數(shù)據(jù)源進(jìn)行劃分,并為來(lái)自不同數(shù)據(jù)源的屬性?xún)?nèi)容分配與之對(duì)應(yīng)的安全標(biāo)簽。 1) 虛屬性va按數(shù)據(jù)源劃分。 由UIC類(lèi)實(shí)例的介紹可知,UNION繼承類(lèi)中的所有類(lèi)實(shí)例集合表示為T(mén)UIC,將TUIC按照實(shí)例對(duì)應(yīng)源類(lèi)實(shí)例所屬類(lèi)的不同進(jìn)行劃分,可以得到: 2) 虛屬性va多安全標(biāo)簽分配。 對(duì)TUIC.va中包含的其他m-1個(gè)分組,都按照相同的方法為其分配安全標(biāo)簽,可以得到UIC中虛屬性va的安全標(biāo)簽集合為: 各個(gè)安全標(biāo)簽和虛屬性va按數(shù)據(jù)源進(jìn)行劃分后的各個(gè)分組為一一對(duì)應(yīng)關(guān)系。 為了進(jìn)一步說(shuō)明多源類(lèi)繼承類(lèi)中虛屬性的安全等級(jí)細(xì)化方法,下面將結(jié)合實(shí)際的例子對(duì)安全等級(jí)細(xì)化方法進(jìn)行具體的介紹。此處同樣以圖2的UNION繼承類(lèi)music為例,對(duì)于其中的虛屬性context,由于其內(nèi)容繼承自?xún)蓚€(gè)源類(lèi),因此context的屬性?xún)?nèi)容可以劃分為兩組,分組結(jié)果表示為: 為每個(gè)分組分配安全標(biāo)簽以表示來(lái)自數(shù)據(jù)源的屬性?xún)?nèi)容的安全等級(jí),由于此例中各級(jí)對(duì)象的類(lèi)別范圍CR均未設(shè)置,因此安全標(biāo)簽的內(nèi)容只需考慮安全級(jí)別SL,則有: 經(jīng)過(guò)以上處理的UNION繼承類(lèi)中context虛屬性的安全標(biāo)簽由之前的單一安全標(biāo)簽變成了一個(gè)安全標(biāo)簽集合,圖3直觀地展現(xiàn)了music繼承類(lèi)中虛屬性context安全等級(jí)細(xì)化后的結(jié)果。 圖3 多數(shù)據(jù)源屬性安全等級(jí)細(xì)化示例 通過(guò)對(duì)同一虛屬性中來(lái)自不同源類(lèi)的屬性?xún)?nèi)容進(jìn)行劃分并添加安全標(biāo)簽,多源類(lèi)繼承類(lèi)UIC中同一虛屬性繼承自不同數(shù)據(jù)源的屬性?xún)?nèi)容以分組為單位擁有了各自的安全標(biāo)簽,從而實(shí)現(xiàn)了多源類(lèi)繼承類(lèi)中虛屬性的安全等級(jí)細(xì)化。 當(dāng)數(shù)據(jù)庫(kù)用戶(hù)企圖訪(fǎng)問(wèn)UNION繼承類(lèi)中的虛屬性va中的部分屬性?xún)?nèi)容時(shí),細(xì)粒度訪(fǎng)問(wèn)控制機(jī)制可以通過(guò)獲取待訪(fǎng)問(wèn)屬性?xún)?nèi)容對(duì)應(yīng)的一個(gè)或者多個(gè)安全標(biāo)簽進(jìn)行更為具體的訪(fǎng)問(wèn)控制。其具體過(guò)程為: (1) 獲取請(qǐng)求訪(fǎng)問(wèn)多源類(lèi)繼承類(lèi)的用戶(hù)的安全標(biāo)簽SecLsub,得到其安全級(jí)別SLsub和類(lèi)別范圍CRsub。 (7) 在初步訪(fǎng)問(wèn)結(jié)果PreResva中屬性va的所有屬性值都經(jīng)過(guò)以上判斷后,若PreResva=?,則不返回任何va屬性?xún)?nèi)容給用戶(hù)。否則,將初步訪(fǎng)問(wèn)結(jié)果PreResva中剩余的屬性?xún)?nèi)容作為最終訪(fǎng)問(wèn)結(jié)果返回給用戶(hù)。 為了進(jìn)一步說(shuō)明多源類(lèi)繼承類(lèi)中的細(xì)粒度訪(fǎng)問(wèn)控制機(jī)制,下面同樣將結(jié)合圖3中已進(jìn)行虛屬性安全等級(jí)細(xì)化的UNION繼承類(lèi)music為例,對(duì)多源類(lèi)繼承類(lèi)中進(jìn)行細(xì)粒度訪(fǎng)問(wèn)控制的流程和方法進(jìn)行介紹。 假設(shè)音樂(lè)網(wǎng)站上有一普通用戶(hù)user,并且該普通用戶(hù)的安全標(biāo)簽為SecLuser=SLuser:CRuser,其中安全級(jí)別SLuser的內(nèi)容為sl3,CRuser的內(nèi)容默認(rèn)為空。用戶(hù)user請(qǐng)求訪(fǎng)問(wèn)UNION繼承類(lèi)music中歌曲名字包含“晴天”的歌曲內(nèi)容。則采用細(xì)粒度訪(fǎng)問(wèn)控制機(jī)制對(duì)用戶(hù)user的訪(fǎng)問(wèn)請(qǐng)求進(jìn)行控制的流程如下: 對(duì)初步訪(fǎng)問(wèn)結(jié)果PreRescontext中的context虛屬性?xún)?nèi)容依次進(jìn)行訪(fǎng)問(wèn)權(quán)限判定后,PreRescontext={r18.context,r57.context}表示初步訪(fǎng)問(wèn)結(jié)果經(jīng)過(guò)訪(fǎng)問(wèn)權(quán)限篩選后僅剩下music繼承類(lèi)中第18個(gè)實(shí)例和第57個(gè)實(shí)例中的context屬性?xún)?nèi)容。最后,將PreRescontext作為訪(fǎng)問(wèn)結(jié)果返回給用戶(hù)user。 由以上介紹可知,多源類(lèi)繼承類(lèi)中屬性級(jí)對(duì)象的強(qiáng)制訪(fǎng)問(wèn)控制可以細(xì)化到具體的屬性?xún)?nèi)容,用戶(hù)可以訪(fǎng)問(wèn)在多數(shù)據(jù)源屬性中其安全等級(jí)可以訪(fǎng)問(wèn)到的所有數(shù)據(jù),而屬性上安全等級(jí)高于用戶(hù)安全等級(jí)的屬性?xún)?nèi)容則不會(huì)包含在用戶(hù)的訪(fǎng)問(wèn)結(jié)果中,從而很好地避免了多數(shù)據(jù)源屬性上單一安全標(biāo)簽導(dǎo)致的用戶(hù)訪(fǎng)問(wèn)受限的問(wèn)題,實(shí)現(xiàn)了多源類(lèi)繼承類(lèi)上的細(xì)粒度訪(fǎng)問(wèn)控制。 在多源數(shù)據(jù)上進(jìn)行細(xì)粒度的訪(fǎng)問(wèn)控制是為了在保證數(shù)據(jù)安全的前提下,最大限度地提高多源類(lèi)數(shù)據(jù)中各虛屬性?xún)?nèi)容的可用性。為了實(shí)現(xiàn)這一目的,本文提出了基于多源數(shù)據(jù)的安全等級(jí)細(xì)化方法。該方法考慮到對(duì)象繼承數(shù)據(jù)庫(kù)中的主體是通過(guò)訪(fǎng)問(wèn)繼承類(lèi)中的虛屬性而得到源類(lèi)中對(duì)應(yīng)屬性?xún)?nèi)容的,因此若要對(duì)繼承類(lèi)中的虛屬性進(jìn)行粒度更細(xì)的訪(fǎng)問(wèn)控制,需要對(duì)繼承類(lèi)的虛屬性?xún)?nèi)容根據(jù)其繼承數(shù)據(jù)所在的源類(lèi)的不同而進(jìn)行分組,并為繼承自不同源類(lèi)的數(shù)據(jù)分組分配相應(yīng)的安全標(biāo)簽,從而實(shí)現(xiàn)對(duì)多源類(lèi)繼承類(lèi)中同一虛屬性中來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)分別進(jìn)行互相獨(dú)立的訪(fǎng)問(wèn)權(quán)限判斷。由于訪(fǎng)問(wèn)權(quán)限的判斷完全是基于用戶(hù)的安全標(biāo)簽和屬性?xún)?nèi)容安全標(biāo)簽的比較的,所以同一虛屬性中各個(gè)內(nèi)容分組安全標(biāo)簽的設(shè)定將直接決定細(xì)粒度訪(fǎng)問(wèn)控制的安全性。 SLsub≥SLSCi.a且CRsub?CRSCi.a SLsub≥SLUIC且CRsub?CRUIC 可以看出,用戶(hù)sub的安全等級(jí)大于等于SCi中a屬性的安全等級(jí),即具備SCi中a屬性的訪(fǎng)問(wèn)權(quán)限,并且用戶(hù)sub的安全等級(jí)大于等于va所在的繼承類(lèi)UIC的安全等級(jí),即具備了UIC的訪(fǎng)問(wèn)權(quán)限。 由以上推理可得,按照基于多源數(shù)據(jù)的安全等級(jí)細(xì)化方法處理得到的虛屬性安全標(biāo)簽集合中,同一虛屬性中繼承了不同源類(lèi)對(duì)應(yīng)屬性的內(nèi)容分組的安全標(biāo)簽和其各自對(duì)應(yīng)的源類(lèi)屬性的安全標(biāo)簽存在著緊密聯(lián)系,以此可以通過(guò)判定用戶(hù)對(duì)虛屬性中各個(gè)內(nèi)容分組的訪(fǎng)問(wèn)權(quán)限來(lái)控制用戶(hù)對(duì)源類(lèi)屬性?xún)?nèi)容的訪(fǎng)問(wèn),從而實(shí)現(xiàn)安全的細(xì)粒度強(qiáng)制訪(fǎng)問(wèn)控制。 實(shí)驗(yàn)在一臺(tái)主頻為4.00 GHz、內(nèi)存為8 GB的PC機(jī)上進(jìn)行,實(shí)驗(yàn)平臺(tái)操作系統(tǒng)為Redhat 6.5。實(shí)驗(yàn)數(shù)據(jù)集選用開(kāi)源音樂(lè)數(shù)據(jù)集Million Song Dataset。 基于PostgreSQL12實(shí)現(xiàn)了本文提出的支持多數(shù)據(jù)源、細(xì)粒度授權(quán)的強(qiáng)制訪(fǎng)問(wèn)控制模型,對(duì)該方法進(jìn)行效率評(píng)估。目前還沒(méi)有一種針對(duì)對(duì)象關(guān)系數(shù)據(jù)庫(kù)的多源細(xì)粒度授權(quán)的訪(fǎng)問(wèn)控制模型實(shí)現(xiàn),因此將本文改進(jìn)的系統(tǒng)(PostgreSQL12+)與PostgreSQL12系統(tǒng)的訪(fǎng)問(wèn)控制功能進(jìn)行比較。實(shí)驗(yàn)選用10個(gè)類(lèi),10 000條數(shù)據(jù),并逐漸增大數(shù)據(jù)規(guī)模進(jìn)行數(shù)據(jù)隨機(jī)授權(quán)、隨機(jī)撤銷(xiāo)授權(quán)、查詢(xún)和更新操作,通過(guò)統(tǒng)計(jì)分析PostgreSQL12系統(tǒng)執(zhí)行時(shí)間和本文改進(jìn)系統(tǒng)(PostgreSQL12+)在執(zhí)行時(shí)間上的差異,對(duì)設(shè)計(jì)的細(xì)粒度強(qiáng)制訪(fǎng)問(wèn)模型給PostgreSQL12系統(tǒng)帶來(lái)的性能影響進(jìn)行分析。 首先對(duì)授權(quán)效率進(jìn)行對(duì)比分析,結(jié)果如圖4所示。可以看出,在10 000條數(shù)據(jù)里依次隨機(jī)授權(quán)100~1 000條數(shù)據(jù)給指定用戶(hù),PostgreSQL12+在執(zhí)行數(shù)據(jù)授權(quán)操作時(shí)所用的時(shí)間小于未使用強(qiáng)制訪(fǎng)問(wèn)控制模型的PostgreSQL12系統(tǒng)執(zhí)行相同操作時(shí)所用的時(shí)間。這是由于強(qiáng)制訪(fǎng)問(wèn)控制模型通過(guò)細(xì)粒度授權(quán)規(guī)則優(yōu)化了隨機(jī)授權(quán)方式,在一定程度上減小了隨機(jī)授權(quán)操作的時(shí)間開(kāi)銷(xiāo),使得PostgreSQL12+數(shù)據(jù)庫(kù)授權(quán)訪(fǎng)問(wèn)更加靈活。 圖4 隨機(jī)授權(quán)操作執(zhí)行時(shí)間對(duì)比圖 實(shí)驗(yàn)分析了撤銷(xiāo)不同規(guī)模數(shù)據(jù)的時(shí)間開(kāi)銷(xiāo),結(jié)果如圖5所示??梢钥闯觯谑跈?quán)10 000條數(shù)據(jù)給用戶(hù)后依次隨機(jī)撤銷(xiāo)100~1 000條數(shù)據(jù)的授權(quán),PostgreSQL12+在執(zhí)行數(shù)據(jù)撤銷(xiāo)授權(quán)操作時(shí)所用的時(shí)間小于未使用強(qiáng)制訪(fǎng)問(wèn)控制模型的PostgreSQL12系統(tǒng)執(zhí)行相同操作時(shí)所用的時(shí)間,但相對(duì)而言,強(qiáng)制訪(fǎng)問(wèn)控制模型對(duì)執(zhí)行隨機(jī)撤銷(xiāo)授權(quán)操作的影響要更大于其對(duì)隨機(jī)授權(quán)操作的影響。這和系統(tǒng)執(zhí)行隨機(jī)授權(quán)和隨機(jī)撤銷(xiāo)授權(quán)操作本身用時(shí)有一定關(guān)系,同時(shí)由于強(qiáng)制訪(fǎng)問(wèn)控制模型使用基于多源數(shù)據(jù)的安全等級(jí)細(xì)化方法,在較大程度上減小了時(shí)間開(kāi)銷(xiāo),使得PostgreSQL12+數(shù)據(jù)庫(kù)的撤銷(xiāo)授權(quán)操作更加高效。 圖5 隨機(jī)撤銷(xiāo)授權(quán)操作執(zhí)行時(shí)間對(duì)比圖 通過(guò)上述實(shí)驗(yàn)分析可見(jiàn),本文方法可以獲得更好的授權(quán)、撤銷(xiāo)權(quán)限效率,同時(shí)作為數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)控制授權(quán)策略,也需要衡量其是否會(huì)對(duì)數(shù)據(jù)庫(kù)查詢(xún)本身產(chǎn)生影響。 設(shè)計(jì)實(shí)驗(yàn)分析PostgreSQL12+的數(shù)據(jù)查詢(xún)效率,結(jié)果如圖6所示??梢钥闯觯?0個(gè)類(lèi)上進(jìn)行查詢(xún)操作,對(duì)應(yīng)的數(shù)據(jù)量分別為1 000~10 000條記錄,PostgreSQL12+在執(zhí)行用戶(hù)查詢(xún)請(qǐng)求時(shí)所用的時(shí)間略大于PostgreSQL12系統(tǒng)執(zhí)行用戶(hù)查詢(xún)請(qǐng)求所用時(shí)間,并且隨著數(shù)據(jù)規(guī)模的增大,消耗的時(shí)間也越多。因此可見(jiàn)強(qiáng)制訪(fǎng)問(wèn)控制模型對(duì)PostgreSQL12系統(tǒng)的查詢(xún)性能是有一定影響的。究其原因,主要是對(duì)類(lèi)中的各個(gè)屬性上的數(shù)據(jù)進(jìn)行查詢(xún)時(shí),均需要通過(guò)調(diào)用強(qiáng)制訪(fǎng)問(wèn)控制的模塊進(jìn)行處理,強(qiáng)制訪(fǎng)問(wèn)控制的模塊對(duì)各個(gè)屬性進(jìn)行了訪(fǎng)問(wèn)權(quán)限判定后才能繼續(xù)查詢(xún)執(zhí)行操作,造成了一定的時(shí)間延遲。但同時(shí)強(qiáng)制訪(fǎng)問(wèn)控制模型在保證數(shù)據(jù)安全的前提下,最大限度地提高多源類(lèi)數(shù)據(jù)中各虛屬性?xún)?nèi)容的可用性,改善了PostgreSQL12系統(tǒng)的性能。 圖6 查詢(xún)操作執(zhí)行時(shí)間對(duì)比圖 綜合以上實(shí)驗(yàn)可以看出,本文設(shè)計(jì)的強(qiáng)制訪(fǎng)問(wèn)控制模型雖然在很小的程度上會(huì)降低PostgreSQL12數(shù)據(jù)庫(kù)的查詢(xún)效率,但是其也賦予PostgreSQL12數(shù)據(jù)庫(kù)授權(quán)訪(fǎng)問(wèn)靈活、時(shí)間開(kāi)銷(xiāo)小等優(yōu)點(diǎn),是一種實(shí)用的對(duì)象關(guān)系數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)控制解決方案。 本文設(shè)計(jì)了一種對(duì)象關(guān)系數(shù)據(jù)庫(kù)環(huán)境下的強(qiáng)制訪(fǎng)問(wèn)控制模型,該模型適用于多數(shù)據(jù)源細(xì)粒度訪(fǎng)問(wèn)授權(quán),提高了對(duì)象關(guān)系數(shù)據(jù)庫(kù)在多數(shù)據(jù)源上進(jìn)行強(qiáng)制訪(fǎng)問(wèn)控制的靈活性,降低了數(shù)據(jù)庫(kù)授權(quán)及撤銷(xiāo)授權(quán)的時(shí)間開(kāi)銷(xiāo)。在PostgreSQL12上的實(shí)驗(yàn)表明該方法可以很好地為對(duì)象關(guān)系數(shù)據(jù)庫(kù)提供靈活高效的強(qiáng)制訪(fǎng)問(wèn)控制。2.2 強(qiáng)制訪(fǎng)問(wèn)控制安全模型
2.3 基于多源數(shù)據(jù)的安全等級(jí)細(xì)化方法
2.4 細(xì)粒度訪(fǎng)問(wèn)控制機(jī)制
2.5 安全性分析
3 實(shí) 驗(yàn)
3.1 實(shí)驗(yàn)環(huán)境
3.2 實(shí)驗(yàn)方案設(shè)計(jì)
3.3 用戶(hù)授權(quán)實(shí)驗(yàn)分析
3.4 用戶(hù)撤銷(xiāo)授權(quán)實(shí)驗(yàn)分析
3.5 數(shù)據(jù)查詢(xún)實(shí)驗(yàn)分析
3.6 實(shí)驗(yàn)結(jié)果分析
4 結(jié) 語(yǔ)