專利名稱:一種空間數(shù)據(jù)庫的訪問控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及空間數(shù)據(jù)庫的訪問控制方法,屬于數(shù)據(jù)庫處理技術(shù)領(lǐng)域,尤其涉及空 間數(shù)據(jù)庫中矢量數(shù)據(jù)和柵格數(shù)據(jù)的訪問控制方法。
背景技術(shù):
空間遙感和信息技術(shù)的發(fā)展使得空間數(shù)據(jù)的應(yīng)用越來越廣泛,空間數(shù)據(jù)的訪問、 管理和可視化研究已經(jīng)走進(jìn)了日常生活。日前已經(jīng)有很多公司和組織通過地理信息系統(tǒng)為 政府和公司在決策上提供空間數(shù)據(jù)查詢、訪問與分析服務(wù)。然而,一些敏感的空間數(shù)據(jù)(如 軍事基地)的暴露給國家?guī)戆踩{。空間數(shù)據(jù)庫管理系統(tǒng)的矢量數(shù)據(jù)和柵格數(shù)據(jù)作為空間數(shù)據(jù)的一個(gè)主要數(shù)據(jù)源,其 授權(quán)問題是空間數(shù)據(jù)庫訪問控制與管理的核心問題??臻g數(shù)據(jù)庫管理系統(tǒng)空間數(shù)據(jù)的授權(quán) 要求授權(quán)系統(tǒng)能夠1)支持否定策略;2)支持對(duì)空間數(shù)據(jù)進(jìn)行多種粒度的授權(quán);3)支持多 種空間拓?fù)潢P(guān)系,并利用該拓?fù)潢P(guān)系界定訪問邊界?,F(xiàn)有工作的主要思路主要有兩種一種 是在傳統(tǒng)授權(quán)模型的基礎(chǔ)上進(jìn)行空間擴(kuò)展,這些方案存在缺陷,如策略表達(dá)能力有限,授權(quán) 區(qū)域不能表達(dá)諸如與授權(quán)窗口鄰接的空間客體的能力;實(shí)現(xiàn)難度大,二次空間檢索帶來性 能的損失大;僅適合主體驅(qū)動(dòng)的空間應(yīng)用。另一種思路是在空間查詢的基礎(chǔ)上進(jìn)行安全擴(kuò) 展,基本思想是在空間數(shù)據(jù)的索引上加入授權(quán)信息,然而該方法在空間數(shù)據(jù)和授權(quán)策略變 動(dòng)頻繁的情況下,需要大量修改空間索引信息,帶來嚴(yán)重的系統(tǒng)負(fù)擔(dān),目前僅應(yīng)用在一些靜 態(tài)的柵格數(shù)據(jù)中。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)對(duì)空間數(shù)據(jù)庫中的矢量數(shù)據(jù)和柵格數(shù)據(jù)進(jìn)行訪問控制管理中存在 的問題,本發(fā)明提供一種空間數(shù)據(jù)庫的訪問控制方法,通過空間謂詞表達(dá)授權(quán)策略,具有豐 富的表達(dá)能力,滿足空間數(shù)據(jù)庫應(yīng)用的安全需求,并且將傳統(tǒng)的訪問控制方法對(duì)數(shù)據(jù)對(duì)象 進(jìn)行的兩次檢索(一次檢索產(chǎn)生于對(duì)數(shù)據(jù)對(duì)象授權(quán)策略的查找與判定,另一次檢索產(chǎn)生于 數(shù)據(jù)對(duì)象的獲取過程)合并為一次檢索。將授權(quán)策略用查詢改寫的方法實(shí)施到用戶查詢 中,使數(shù)據(jù)查詢和授權(quán)判定一次檢索完成,降低了系統(tǒng)檢索的負(fù)擔(dān),提高了空間數(shù)據(jù)訪問的 效率和速度,同時(shí)也有效保護(hù)敏感數(shù)據(jù)不被訪問。為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種空間數(shù)據(jù)庫的訪問控制方法,包括下列步驟1)用戶經(jīng)過認(rèn)證與空間數(shù)據(jù)庫建立連接和會(huì)話;2)用戶向空間數(shù)據(jù)庫輸入訪問信息,空間數(shù)據(jù)庫將訪問信息解析為查詢解析樹;3)依據(jù)查詢解析樹檢索授權(quán)策略;4)依據(jù)授權(quán)策略改寫查詢解析樹;
5)優(yōu)化改寫過的查詢解析樹; 6)執(zhí)行優(yōu)化后的查詢解析樹并輸出訪問結(jié)果。
4
所述授權(quán)策略為一個(gè)六元組<s,ο, p,ap,gtype,goption〉,其中s為策略的主體,即為數(shù)據(jù)庫中的用戶ο為策略的客體,即為空間數(shù)據(jù)庫的空間數(shù)據(jù)表ρ為策略的權(quán)限,即為對(duì)空間數(shù)據(jù)庫的操作權(quán)限ap為策略的授權(quán)區(qū)域,用于限定該用戶s對(duì)空間數(shù)據(jù)表ο訪問邊界gtype為策略的類型,包含肯定策略和否定策略??隙ú呗允侵冈试S用戶訪問,否 定策略則是指不允許用戶訪問該矢量數(shù)據(jù)表對(duì)應(yīng)的空間對(duì)象goption為策略的傳播選項(xiàng)。true表示該策略的被授予者能夠轉(zhuǎn)授該權(quán)限;false 則表示不能。第3)步驟的具體方法為依據(jù)查詢解析樹的主體、客體和訪問方式,逐條查找匹配的授權(quán)策略;第4)步驟的具體方法為提取授權(quán)策略中的空間謂詞;合取授權(quán)策略中否定策略的空間謂詞;析取授權(quán)策略中肯定策略的空間謂詞;然后再將兩者合取形成合成的空間謂詞;將合成的空間謂詞和原查詢解析樹中的查詢資格進(jìn)行合取后添加到查詢解析樹 的查詢資格列中。授權(quán)策略與查詢解析樹相匹配,可以為一條或多條。所述空間謂詞表示為ap = gtype。所述的授權(quán)區(qū)域由授權(quán)窗口和空間拓?fù)潢P(guān)系組成,授權(quán)窗口用于表示授權(quán)區(qū)域的 幾何參照,為一個(gè)空間幾何多邊形;空間拓?fù)潢P(guān)系表示授權(quán)客體與授權(quán)窗口的空間關(guān)系。授 權(quán)客體,是授權(quán)給主體的客體的集合。所述空間拓?fù)潢P(guān)系包括但不僅限于以下within、touch、contain、cross、 disjoint、equal>intersect 禾口 overlap。其中,within 在其中。對(duì)于空間對(duì)象a,b,within(a,b)表示空間對(duì)象a的邊界 與內(nèi)部完全的包含在空間對(duì)象b的內(nèi)部。touch 相鄰。對(duì)于空間對(duì)象a, b,touch (a, b)表示空間對(duì)象a和b的邊界相交, 但內(nèi)部不相交。contain 包含。對(duì)于空間對(duì)象a,b,cantain (a,b)表示空間對(duì)象a包含空間對(duì)象 b的邊界和內(nèi)部。disjoint 相離。對(duì)于空間對(duì)象a,b,disjoint (a,b)表示空間對(duì)象a和b的邊界 與內(nèi)部都不相交intersect 相交。對(duì)于空間對(duì)象a,b,intersect (a,b)表示空間對(duì)象a和b相交。 equal 重疊。對(duì)于空間對(duì)象a, b,equal (a, b)表示空間對(duì)象a和b具有相同的邊界和所述操作權(quán)限包括但不僅限于以下操作select、insert、update和delete以及 任意兩種或兩種以上的組合。其中select是指選擇;insert是指插入;update是指更新; delete是指刪除。所述優(yōu)化查詢解析樹的方法為首先將改寫后的查詢解析樹依據(jù)訪問信息的客體分解為多個(gè)單獨(dú)的子查詢;
對(duì)每個(gè)子查詢的where子句進(jìn)行冗余清除;將經(jīng)過冗余清除的每個(gè)子查詢進(jìn)行窮舉收索,依據(jù)代價(jià)模型選取最優(yōu)執(zhí)行計(jì)劃;將最優(yōu)執(zhí)行計(jì)劃轉(zhuǎn)換為執(zhí)行代碼。所述的冗余清除的具體方法為第一,將where子句中的空間謂詞轉(zhuǎn)化為析取范式形如 (XI Λ Yl) V (Χ2 Λ Υ2) V……V (Xn Λ Yn),其中 Xk, Yk 為空間謂詞。第二,根據(jù)子句中的兩個(gè)空間謂詞的拓?fù)潢P(guān)系進(jìn)行子句的冗余判定,對(duì)空間謂詞 進(jìn)行合并或裁剪。和現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)1、提供更多種的授權(quán)策略本發(fā)明提出的空間數(shù)據(jù)庫矢量數(shù)據(jù)或柵格數(shù)據(jù)的訪問控制方法支持多種粒度的 授權(quán)(表級(jí)和記錄級(jí)的授權(quán));而且支持肯定和否定授權(quán);并且能夠通過傳播選項(xiàng)進(jìn)行矢量 數(shù)據(jù)的委托授權(quán)。2.更高的訪問效率本發(fā)明將傳統(tǒng)的策略判定和空間檢索的兩次空間查詢合并為一次,在一次查詢中 確定用戶查詢的結(jié)果并返回相應(yīng)的信息;同時(shí)分析改寫后的用戶查詢,對(duì)空間謂詞轉(zhuǎn)換為 析取范式,利用合并規(guī)則和裁剪規(guī)則對(duì)空間謂詞進(jìn)行冗余清除通過這兩種方式提高空間 數(shù)據(jù)庫矢量數(shù)據(jù)安全訪問的性能。
圖1為本發(fā)明方法的流程框圖;圖2為本發(fā)明實(shí)施例中使用的空間數(shù)據(jù)庫的矢量數(shù)據(jù)示意圖;圖3為本發(fā)明實(shí)施例中對(duì)房山農(nóng)場(chǎng)及所在村莊的相關(guān)信息進(jìn)行訪問的查詢解析 樹;圖4為圖3的查詢解析樹用本發(fā)明的方法改寫后生成的新的查詢解析樹;圖5為本發(fā)明的方法運(yùn)用于BeyonDB數(shù)據(jù)庫時(shí)的體系架構(gòu)圖;圖6為本發(fā)明方法中改寫查詢解析樹的流程框具體實(shí)施例方式下面通過實(shí)施例結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。本發(fā)明的空間數(shù)據(jù)庫的訪問控制方法包括如下步驟,參見圖1 1)用戶經(jīng)過認(rèn)證與空間數(shù)據(jù)庫建立連接和會(huì)話;空間數(shù)據(jù)庫包括空間數(shù)據(jù)表,空 間數(shù)據(jù)表的每一條記錄對(duì)應(yīng)一個(gè)空間對(duì)象,表的一個(gè)字段geometry用于表述空間對(duì)象的 幾何形狀,其他字段描述空間對(duì)象的一些非空間屬性。2)用戶向空間數(shù)據(jù)庫輸入訪問信息,空間數(shù)據(jù)庫將訪問信息解析為查詢解析樹;3)依據(jù)查詢解析樹檢索授權(quán)策略;根據(jù)當(dāng)前用戶查詢的空間數(shù)據(jù)表,即客體、查詢主體(包括當(dāng)前用戶、當(dāng)前會(huì)話扮 演的角色、和會(huì)話指定的組)以及查詢的具體操作,即訪問方式,對(duì)策略庫中的授權(quán)策略進(jìn) 行查找。查找時(shí)為逐條查找與上述客體、主體和訪問方式匹配的授權(quán)策略。
授權(quán)策略為一個(gè)六元組<s,O,p,ap,gtype,goption〉,其中s為策略的主體,即為數(shù)據(jù)庫中的用戶ο為策略的客體,即為空間數(shù)據(jù)庫的空間數(shù)據(jù)表ρ為策略的權(quán)限,即為對(duì)空間數(shù)據(jù)庫的操作權(quán)限。操作權(quán)限包括select、insert、 update和delete及其任意兩種或兩種以上的組合。ap為策略的授權(quán)區(qū)域,用于限定該用戶s對(duì)空間數(shù)據(jù)表ο訪問邊界。授權(quán)區(qū)域由 授權(quán)窗口和空間拓?fù)潢P(guān)系組成,授權(quán)窗口用于表示授權(quán)區(qū)域的幾何參照,為一個(gè)空間幾何 多邊形;空間拓?fù)潢P(guān)系表示授權(quán)客體與授權(quán)窗口的空間關(guān)系??臻g拓?fù)潢P(guān)系包括但不僅限 于以下拓?fù)潢P(guān)系within、touch、contain、cross、disjoint、equal、intersect 和 overlap。gtype為策略的類型,包含肯定策略和否定策略。肯定策略是指允許用戶訪問,否 定策略則是指不允許用戶訪問該矢量數(shù)據(jù)表對(duì)應(yīng)的空間對(duì)象。goption為策略的傳播選項(xiàng),true表示該策略的被授予者能夠轉(zhuǎn)授該權(quán)限;false 則不能。4)依據(jù)授權(quán)策略改寫查詢解析樹,具體方法為提取每一條授權(quán)策略的空間謂詞,授權(quán)策略表示為SQL語句“CREATE PERMIT ρ ON ο TOs WHERE ap = gtype goption,,的,則空間謂詞表示為 ap = gtype ;合取否定策略的空間謂詞;析取肯定策略的空間謂詞;然后再將兩者合取形成合成的空間謂詞;將合成的空間謂詞和原查詢解析樹中的查詢資格進(jìn)行合取后添加到新的查詢解 析樹的查詢資格列中。5)優(yōu)化改寫過的查詢解析樹;首先將改寫后的查詢解析樹依據(jù)訪問信息的客體分解為幾個(gè)單獨(dú)的子查詢;第二對(duì)每個(gè)子查詢的where子句進(jìn)行冗余清除;空間謂詞冗余判定依賴于空間謂詞的組成。通??臻g謂詞由空間拓?fù)潢P(guān)系和空間 區(qū)域兩部分構(gòu)成,拓?fù)潢P(guān)系和空間區(qū)域各自存在著特殊關(guān)系。例如拓?fù)潢P(guān)系的相交與包 含,包含與相離以及空間區(qū)域的包含關(guān)系等,這些都是潛在的造成謂詞冗余的原因。在分析 拓?fù)浜瘮?shù)的關(guān)系以及授權(quán)區(qū)域(包括查詢區(qū)域)之間的關(guān)系之后,依據(jù)合并規(guī)則和裁剪規(guī) 則進(jìn)行冗余清除??臻g拓?fù)潢P(guān)系可分為兩類,拓?fù)潢P(guān)系包容和拓?fù)潢P(guān)系沖突,其中拓?fù)潢P(guān)系包容定義為設(shè)空間謂詞X為TPX (geometry,GEO) = 1,Y為 TPY (geometry, GEO) = 1,其中g(shù)eometry為矢量數(shù)據(jù)表的空間屬性,GEO為查詢區(qū)域,RX和 RY為空間謂詞X和Y查詢結(jié)果集。對(duì)于任意的矢量數(shù)據(jù)和查詢區(qū)域GE0,如果RX包含RY, 則稱TPX包容TPY。拓?fù)潢P(guān)系沖突定義為設(shè)空間謂詞X為TPX (geometry,GEO) = 1,Y為 TPY (geometry, GEO) = 1,其中g(shù)eometry為矢量數(shù)據(jù)表的空間屬性,GEO為查詢區(qū)域,RX和 RY為空間謂詞X和Y查詢結(jié)果集。對(duì)于任意的矢量數(shù)據(jù)和查詢區(qū)域GE0,如果RX與RY的 交集為空,則稱TPX與TPY沖突。例如,若矢量數(shù)據(jù)geometry與查詢區(qū)域GEO存在within關(guān)系,那么必然存在intersect關(guān)系,也即是說,對(duì)于任意矢量數(shù)據(jù)geometry和查詢區(qū)域GEO,均有謂詞 intersect (geometry, GEO) = 1 的查詢結(jié)果集包含謂詞 within (geometry,GEO) = 1 的查詢 結(jié)果集,因而intersect包容within ;同理,within包容其自身。而由于within (geometry, GEO) = 1的查詢結(jié)果集與disjoint (geometry,GEO) = 1的查詢結(jié)果集的交集總為空,因 而within與disjoint相沖突。根據(jù)兩個(gè)空間謂詞的空間拓?fù)潢P(guān)系和授權(quán)窗口之間的相互關(guān)系,按照如下規(guī)則對(duì) where子句進(jìn)行冗余清除合并規(guī)則1 設(shè)空間拓?fù)潢P(guān)系函數(shù)TPFX = TPX (geometry, GE0X),TPFY = TPY(geometry,GE0Y),其中TPX和TPFY為disjoint之外的拓?fù)潢P(guān)系,GEOX和GEOY為查詢 區(qū)域,如果TPX包容TPY,且GEOX包含GE0Y,則合取式(TPFX = 1 Λ TPFY = 1)合并為TPFY =1,合取式(TPFX = 0 Λ TPFY = 0)合并為 TPFX = 0 ;析取式(TPFX = 1 V TPFY = 1)合 并為 TPFX = 1,析取式(TPFX = OV TPFY = 0)合并為 TPFY = 0。合并規(guī)則2 設(shè)空間拓?fù)潢P(guān)系函數(shù) TPFX = disjoint (geometry, GE0X),TPFY = disjoint (geometry,GE0Y),其中GEOX和GEOY為查詢區(qū)域,如果GEOX包含GE0Y,則合取式 (TPFX = 1 Λ TPFY = 1)合并為 TPFX = 1 ;合取式(TPFX = OA TPFY = 0)合并為 TPFY = 0 ;析取式(TPFX = 1 V TPFY = 1)合并為 TPFY = 1,析取式(TPFX = OV TPFY = 0)合并 為 TPFX = 0。裁剪規(guī)則1 設(shè)空間拓?fù)潢P(guān)系函數(shù)TPFX = TPX (geometry, GE0X),TPFY = TPY (geometry,GE0Y),其中g(shù)eometry為矢量數(shù)據(jù)表的空間屬性,GEOX和GEOY為查詢區(qū)域, 如果GEOX = GEOY,且TPX與TPY沖突,則合取式(TPFX = 1 Λ TPFY = 1)用false代替。裁剪規(guī)則2 設(shè)空間拓?fù)潢P(guān)系函數(shù)TPFX = TPX (geometry, GE0X),TPFY = TPY (geometry,GE0Y),其中g(shù)eometry為矢量數(shù)據(jù)表的空間屬性,GEOX和GEOY為查詢區(qū)域, 如果 TPX = TPY 且不為 disjoint,GEOX 包含 GE0Y,則合取式(TPFX = OA TPFY = 1)用 false代替.裁剪規(guī)則3 設(shè)空間拓?fù)潢P(guān)系函數(shù) TPFX = disjoint (geometry, GE0X),disjoint =TPY (geometry, GE0Y),其中g(shù)eometry為矢量數(shù)據(jù)表的空間屬性,GEOX和GEOY為查詢區(qū) 域,如果GEOX包含GE0Y,則合取式(TPFX = OA TPFY = 1)用false代替。例如where 子句為(intersect (geometry, geo) = 1) Λ (within (geometry, geo) = 1),根據(jù)合并規(guī)則 1,TPX = intersect, TPY = within, GEOX = GEOY = geo, intersect 包容 within,且 GEOX = GEOY = geo。那么 where 子句(intersect (geometry, geo) = 1) Λ (within (geometry, geo) = 1)可合并為(within (geometry, geo) = 1第三將每個(gè)經(jīng)過冗余清除的子查詢生成的查詢解析樹進(jìn)行窮舉搜索,依據(jù)代價(jià)模 型選取最優(yōu)執(zhí)行計(jì)劃;最后將最優(yōu)執(zhí)行計(jì)劃轉(zhuǎn)換為執(zhí)行代碼。6)執(zhí)行優(yōu)化后的查詢解析樹并輸出訪問結(jié)果即執(zhí)行最優(yōu)執(zhí)行計(jì)劃的執(zhí)行代碼并輸出訪問結(jié)果。本發(fā)明的方法可以用于BeyonDB數(shù)據(jù)庫,本發(fā)明用于BeyonDB數(shù)據(jù)庫的體系架構(gòu) 如圖5所示,矢量數(shù)據(jù)的查詢處理將依次進(jìn)行語法分析,查詢改寫,優(yōu)化,執(zhí)行四大步驟。其 中,查詢改寫將依次根據(jù)查詢中相關(guān)的視圖,規(guī)則,授權(quán)(即傳統(tǒng)數(shù)據(jù)庫自主訪問控制判
8定)和完整性的定義進(jìn)行改寫。視圖改寫是將對(duì)視圖的查詢改寫成對(duì)其基表的查詢;規(guī) 則(與其他數(shù)據(jù)庫中的觸發(fā)器相同)的改寫是收集查詢中相關(guān)的規(guī)則信息,并存儲(chǔ)到查詢 結(jié)構(gòu)中,提交到執(zhí)行器去執(zhí)行;授權(quán)的改寫是根據(jù)自主訪問控制策略對(duì)查詢進(jìn)行授權(quán)判定; 而完整性改寫是將定義在表和視圖中的完整性約束收集到查詢結(jié)構(gòu)中。而優(yōu)化的步驟包括 子查詢生成,枚舉計(jì)劃生成和代碼生成。子查詢生成是將查詢重寫修改的解析樹分解成幾 個(gè)單獨(dú)的塊,用于后繼優(yōu)化,這些塊通常也稱為優(yōu)化器內(nèi)部的子查詢,這一過程引入了相對(duì) 簡單的啟發(fā)式重寫簡化查詢,增強(qiáng)優(yōu)化;枚舉計(jì)劃生成是將優(yōu)化器內(nèi)部生成的每個(gè)子查詢 的所有執(zhí)行計(jì)劃進(jìn)行窮舉搜索,依據(jù)代價(jià)模型選取最優(yōu)執(zhí)行計(jì)劃;而代碼生成是將枚舉計(jì) 劃選取的優(yōu)化計(jì)劃轉(zhuǎn)換成執(zhí)行器真正用來執(zhí)行的代碼格式。BeyonDB進(jìn)行矢量數(shù)據(jù)授權(quán)的安全擴(kuò)展包括兩個(gè)部分1)查詢改寫中進(jìn)行授權(quán)改 寫之后,增加謂詞改寫,將矢量數(shù)據(jù)的授權(quán)策略作為一個(gè)where子條件添加到解析樹中;2) 優(yōu)化過程中在啟發(fā)式重寫增強(qiáng)優(yōu)化階段,對(duì)謂詞中可能存在的冗余進(jìn)行初步優(yōu)化。下面以空間數(shù)據(jù)庫中的房山區(qū)為例具體說明本發(fā)明的方法。空間數(shù)據(jù)庫包括空間數(shù)據(jù)表,空間數(shù)據(jù)表的每一條記錄對(duì)應(yīng)一個(gè)空間對(duì)象,表的 一個(gè)字段geometry用于表述空間對(duì)象的幾何形狀,其他字段描述空間對(duì)象的一些非空間 屬性。以矢量數(shù)據(jù)為例,圖2顯示了房山區(qū)局部行政圖,對(duì)應(yīng)空間數(shù)據(jù)庫中的一個(gè)空間數(shù)據(jù) 表fangshan,行政圖上的每一個(gè)幾何多邊形都對(duì)應(yīng)一個(gè)空間對(duì)象,這個(gè)空間對(duì)象也對(duì)應(yīng)在 空間數(shù)據(jù)表中的一條記錄。比如圖2中進(jìn)行了填充的區(qū)域是金雞臺(tái)。由于要在金雞臺(tái)區(qū)域 建立軍事基地,相應(yīng)的對(duì)空間數(shù)據(jù)庫的訪問,金雞臺(tái)及其鄰接的區(qū)域應(yīng)禁止公眾訪問。為了體現(xiàn)上述限制,空間數(shù)據(jù)庫的策略庫中需要確定一條授權(quán)策略為<public, fangshan, select, <touch, JJT>, _,false>,其中用戶s 為 Public空間數(shù)據(jù)庫的空間數(shù)據(jù)表ο是Fangshan用戶s對(duì)空間數(shù)據(jù)庫的操作權(quán)限ρ是Select用戶s對(duì)空間數(shù)據(jù)表ο訪問邊界的授權(quán)區(qū)域是〈touch,JJT>,空間拓?fù)潢P(guān)系是 touch,表示授權(quán)客體與授權(quán)窗口的空間關(guān)系。授權(quán)窗口是JJT,即金雞臺(tái)的幾何參照,為一 個(gè)空間幾何多邊形。策略的類型gtype為-,即否定策略,矢量數(shù)據(jù)表ο中的授權(quán)區(qū)域ap =〈touch, JJT>不允許Public訪問。也就是說與金雞臺(tái)邊界相鄰的空間區(qū)域不允許訪問。策略的傳播選項(xiàng)goption為false,表示該策略的被授予者不能夠轉(zhuǎn)授該權(quán)限。如果用戶對(duì)金雞臺(tái)發(fā)起如下查詢SELECT*FR0M fangshan根據(jù)這條查詢從策略數(shù)據(jù)庫中檢索到的授權(quán)策略為<public, fangshan, select, <touch, JJT>, _,false>,相應(yīng)的該授權(quán)策略建立SQL語句為SELECT*FR0M fangshan WHERE st_touches (geometry, JJT) =0,也就是說 touch JJT是不允許的。則該條授權(quán)策略的空間謂詞為touches (geometry,JJT) = 0,這表明相對(duì) 于這條策略,用戶查詢金雞臺(tái)返回的結(jié)果將是不允許查詢金雞臺(tái)及周邊區(qū)域。由于用戶的訪問可能并不局限于空間數(shù)據(jù)庫的某一單獨(dú)的空間幾何多邊形,而是
9涉及一個(gè)空間范圍,包含多個(gè)空間幾何多邊形,將會(huì)涉及多個(gè)授權(quán)策略。因此,用戶經(jīng)過認(rèn) 證與空間數(shù)據(jù)庫建立連接和會(huì)話后,1)需要將用戶的訪問信息進(jìn)行語法分析解析為查詢解析樹;訪問I(Ql)公眾用戶訪問空間數(shù)據(jù)庫中房山農(nóng)場(chǎng)及所在村莊的相關(guān)信息,訪問 信息為SELECT farm_name, country_name, usage FROM fangshan FS, bjfarm FWHERE FS. country_name = F. locationAND st_intersects(FS. geometry, QP) = 0AND udf(FS)將其解析為解析語法樹見圖3,解析樹的左子樹為目標(biāo)列,為該查詢的輸出結(jié)果 集;解析樹的右子樹為查詢資格,也就是查詢語句的where子句。2)依據(jù)查詢解析樹檢索授權(quán)策略,該查詢解析樹涉及到四條授權(quán)策略,授權(quán)策略的SQL語句為判定1 (P1)禁止公眾訪問金雞臺(tái)村和與其相鄰接的行政村CREATE PERMIT select ON fangshan TO public WHERE st_touches(geometry, JJT) = 0判定2(P2)禁止公眾訪問房山區(qū)南關(guān)站CREATE PERMIT select ON fangshan TO public WHERE st_within(geometry, NGZ) = 0判定3(P3):允許公眾訪問旁山區(qū)百花山風(fēng)景區(qū)CREATE PERMIT select ON fangshan TO public WHERE st_within(geometry, BHS) = 1判定4(P4):允許公眾訪問房山區(qū)銀狐洞風(fēng)景區(qū)CREATE PERMIT select ON fangshan TO public WHERE st within (geometry, YHD) = 1其中0為否定策略,1為肯定策略。3)根據(jù)上述的授權(quán)策略改寫查詢解析樹,改寫后的查詢解析樹見圖4。首先提取每一條授權(quán)策略的空間謂詞,P1 touches (geometry, JJT) = 0P2 :within (geometry, NGZ) = 0P3 :within (geometry, BHS) = 1P4 :within (geometry, YHD) = 1 ;將空間謂詞添加到查詢解析樹的查詢資格列中,具體為考慮到用戶多策略問題,不可避免存在策略沖突問題。在進(jìn)行策略合成的過程中, 將采用否定優(yōu)先的合成方法。在改寫的過程中,將先合取否定策略對(duì)應(yīng)的空間謂詞,析取 肯定策略對(duì)應(yīng)的空間謂詞,而后將否定策略空間謂詞的析取結(jié)果與肯定策略空間謂詞的合 取結(jié)果與原查詢解析樹的查詢資格三者合取,作為改寫后新的查詢資格(即解析樹的右子 樹)。如圖4所示。訪問Ql將觸發(fā)兩條否定策略Pl與P2和兩條肯定策略P3與P4,改寫 過程先將否定策略Pl與P2的空間謂詞合取,將肯定策略P3與P4的空間謂詞析取,最后將這兩個(gè)中間結(jié)果與訪問Ql的查詢資格(WHERE子句)合取,將合取的結(jié)果作為改寫后的查 詢解析樹的右子樹。具體而言,查詢解析樹改寫的重要步驟是空間謂詞改寫,實(shí)際上是在進(jìn)行數(shù)據(jù)庫 的自主訪問控制(授權(quán)改寫)之后,將矢量數(shù)據(jù)的授權(quán)策略以一個(gè)空間謂詞的形式,添加到 查詢的解析樹中??臻g謂詞改寫過程如圖6所示,對(duì)于用戶訪問的每一個(gè)空間數(shù)據(jù)表,均執(zhí) 行如下具體步驟a)讀取策略庫中的一條策略;b)將用戶查詢的主體、客體和訪問方式與該策略對(duì)比判定策略與當(dāng)前查詢是否相 關(guān);c)如果不相關(guān)則繼續(xù)到下一條策略,如果相關(guān)則判斷是否為否定策略;d)如果是否定策略,則將該策略的空間謂詞與已查找到的否定策略集的所有空間 謂詞合取,繼續(xù)下一條策略,否則到步驟5)e)如果是肯定策略,則將該策略的空間謂詞與已查找到的肯定策略的所有空間謂 詞析取。f)將肯定策略的空間謂詞的合取結(jié)果、否定策略空間謂詞的析取結(jié)果與用戶查詢 的查詢資格析取,將三者的析取結(jié)果作為改寫后的查詢資格。4)優(yōu)化改寫過的查詢解析樹優(yōu)化的具體步驟如下;首先將改寫后的查詢解析樹分解為幾個(gè)單獨(dú)的子查詢;對(duì)每個(gè)子查詢的where子句進(jìn)行冗余清除;具體來說第一,將where子句中的空間謂詞轉(zhuǎn)化為析取范式形如 (XI Λ Yl) V (Χ2 Λ Υ2) V……V (Xn Λ Yn),其中 Xk, Yk 為空間謂詞。第二,對(duì)每一個(gè)子句進(jìn)行冗余判定,進(jìn)而進(jìn)行冗余清除。第三將每個(gè)子查詢生成的查詢解析樹進(jìn)行窮舉收索,依據(jù)代價(jià)模型選取最優(yōu)執(zhí)行 計(jì)劃;將最優(yōu)執(zhí)行計(jì)劃轉(zhuǎn)換為執(zhí)行代碼。5)空間數(shù)據(jù)庫的執(zhí)行器執(zhí)行優(yōu)化后的查詢解析樹的執(zhí)行代碼,輸出授權(quán)條件下的 用戶需要的空間數(shù)據(jù)信息。這個(gè)空間數(shù)據(jù)信息可以為矢量數(shù)據(jù),也可以為柵格數(shù)據(jù)。矢量 數(shù)據(jù)可以為二維或三維數(shù)據(jù)。綜上所述,本發(fā)明提出一種空間數(shù)據(jù)庫訪問控制方法。該方法通過空間謂詞表 達(dá)授權(quán)策略,具有更豐富的策略表達(dá)能力不僅支持多種粒度的授權(quán)(表級(jí)和記錄級(jí)的授 權(quán)),而且支持肯定和否定授權(quán),還能夠通過傳播選項(xiàng)進(jìn)行矢量數(shù)據(jù)的委托授權(quán)。此外,該方 法將傳統(tǒng)的策略判定和空間檢索的兩次空間查詢合并為一次,在一次查詢中確定用戶查詢 的結(jié)果并返回相應(yīng)的信息;同時(shí)分析改寫后的用戶查詢,對(duì)空間謂詞轉(zhuǎn)換為析取范式,利用 合并規(guī)則和裁剪規(guī)則對(duì)空間謂詞進(jìn)行冗余清除通過這兩種方式提高空間數(shù)據(jù)庫矢量數(shù)據(jù) 安全訪問的性能。
1權(quán)利要求
一種空間數(shù)據(jù)庫的訪問控制方法,包括下列步驟1)用戶經(jīng)過認(rèn)證與空間數(shù)據(jù)庫建立連接和會(huì)話;2)用戶向空間數(shù)據(jù)庫輸入訪問信息,空間數(shù)據(jù)庫將訪問信息解析為查詢解析樹;3)依據(jù)查詢解析樹檢索授權(quán)策略;4)依據(jù)授權(quán)策略改寫查詢解析樹;5)優(yōu)化改寫過的查詢解析樹;6)執(zhí)行優(yōu)化后的查詢解析樹并輸出訪問結(jié)果。
2.根據(jù)權(quán)利要求1所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述授權(quán)策略為六 兀組 <s, ο, ρ, ap, gtype, goption>,其中s為策略的主體,為數(shù)據(jù)庫的用戶O為策略的客體,為空間數(shù)據(jù)庫的空間數(shù)據(jù)表P為策略的權(quán)限,為對(duì)空間數(shù)據(jù)庫的操作權(quán)限ap為策略的授權(quán)區(qū)域,用于限定用戶s對(duì)空間數(shù)據(jù)表ο的訪問邊界gtype為策略的類型,包含肯定策略和否定策略goption為策略的傳播選項(xiàng)。
3.根據(jù)權(quán)利要求2所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于第4)步驟的具體方 法為提取授權(quán)策略中的空間謂詞; 合取授權(quán)策略中否定策略的空間謂詞; 析取授權(quán)策略中肯定策略的空間謂詞; 然后再將上述兩者合取形成合成的空間謂詞;將合成的空間謂詞和原查詢解析樹中的查詢資格進(jìn)行合取后添加到查詢解析樹的查 詢資格列中。
4.根據(jù)權(quán)利要求3所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述空間謂詞表示 為 ap = gtype。
5.根據(jù)權(quán)利要求4所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述的授權(quán)區(qū)域由 授權(quán)窗口和空間拓?fù)潢P(guān)系組成,授權(quán)窗口用于表示授權(quán)區(qū)域的幾何參照;拓?fù)潢P(guān)系表示授 權(quán)客體與授權(quán)窗口的空間關(guān)系。
6.根據(jù)權(quán)利要求5所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述空間拓?fù)?關(guān)系包括但不僅限于以下拓?fù)潢P(guān)系within、touch、contain、cross、disjoint、equal、 intersect 禾口 overlap。
7.根據(jù)權(quán)利要求4所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述操作權(quán)限包括 但不僅限于以下操作seleCt、insert、update和delete以及任意兩種或兩種以上的組合。
8.根據(jù)權(quán)利要求1所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于第3)步驟的具體方 法為依據(jù)訪問信息中的主體、客體和訪問方式,逐條查找匹配的授權(quán)策略。
9.根據(jù)權(quán)利要求3所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述優(yōu)化查詢解析 樹的方法為首先將改寫后的查詢解析樹依據(jù)訪問信息的客體分解為多個(gè)單獨(dú)的子查詢; 對(duì)每個(gè)子查詢的where子句進(jìn)行冗余清除;將經(jīng)過冗余清除的每個(gè)子查詢進(jìn)行窮舉搜索,依據(jù)代價(jià)模型選取最優(yōu)執(zhí)行計(jì)劃; 將最優(yōu)執(zhí)行計(jì)劃轉(zhuǎn)換為執(zhí)行代碼。
10.根據(jù)權(quán)利要求9所述的空間數(shù)據(jù)庫的訪問控制方法,其特征在于所述的冗余清除 的方法為第一,將where子句中的空間謂詞轉(zhuǎn)化為析取范式;第二,根據(jù)子句中的兩個(gè)空間謂詞的相互關(guān)系進(jìn)行子句的冗余判定,對(duì)空間謂詞進(jìn)行 合并或裁剪。
全文摘要
本發(fā)明公開一種空間數(shù)據(jù)庫的訪問控制方法,包括下列步驟1)用戶經(jīng)過認(rèn)證與空間數(shù)據(jù)庫建立連接和會(huì)話;2)用戶向空間數(shù)據(jù)庫輸入訪問信息,空間數(shù)據(jù)庫將訪問信息解析為查詢解析樹;3)依據(jù)查詢解析樹檢索授權(quán)策略;4)依據(jù)授權(quán)策略改寫查詢解析樹;5)優(yōu)化改寫過的查詢解析樹;6)執(zhí)行優(yōu)化后的查詢解析樹并輸出訪問結(jié)果。本發(fā)明的方法能提供多種授權(quán)策略;支持多種粒度的授權(quán);而且支持肯定和否定授權(quán)策略;并且能夠通過傳播選項(xiàng)進(jìn)行數(shù)據(jù)的委托授權(quán)。本發(fā)明將傳統(tǒng)的策略判定和空間檢索合并為一次,在一次查詢中確定用戶查詢結(jié)果并返回相應(yīng)的信息;同時(shí)利用合并規(guī)則和裁剪規(guī)則對(duì)空間謂詞進(jìn)行冗余清除,提高空間數(shù)據(jù)庫安全訪問的性能。
文檔編號(hào)G06F17/30GK101976249SQ201010512380
公開日2011年2月16日 申請(qǐng)日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者馮登國, 張德勝, 張敏, 徐震, 陳馳 申請(qǐng)人:中國科學(xué)院軟件研究所