實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)信息處理技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法。
【背景技術(shù)】
[0002]隨著數(shù)據(jù)庫產(chǎn)品和技術(shù)的快速發(fā)展,將數(shù)據(jù)庫作為數(shù)據(jù)存儲與訪問的數(shù)據(jù)源應(yīng)用到各種信息化系統(tǒng)已經(jīng)成為非常成熟的應(yīng)用方式,在基于數(shù)據(jù)庫的信息系統(tǒng)中,當(dāng)用戶使用信息系統(tǒng)針對數(shù)據(jù)庫特定表或系統(tǒng)對象進(jìn)行訪問時(shí),如何對用戶訪問的權(quán)限進(jìn)行控制為數(shù)據(jù)庫訪問的核心問題。
[0003]目前,數(shù)據(jù)訪問權(quán)限控制一般采用如下兩種方法:一種方法是采用代碼固化的方式進(jìn)行權(quán)限控制,這種方式比較簡單但不利于后期的維護(hù);另一種是采用靈活的數(shù)據(jù)訪問權(quán)限配置,具體地,當(dāng)用戶在查詢數(shù)據(jù)時(shí),通過用戶的數(shù)據(jù)權(quán)限臨時(shí)拼接SQL語句,這種方法雖然具有一定的靈活性,但是采用SQL語句拼接的方式不符合主流ORM思想,同時(shí)也存在性能問題及安全問題。
【發(fā)明內(nèi)容】
[0004]【要解決的技術(shù)問題】
[0005]本發(fā)明的目的是提供一種實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,以解決目前的數(shù)據(jù)訪問權(quán)限控制存在的性能問題及安全問題。
[0006]【技術(shù)方案】
[0007]本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的。
[0008]本發(fā)明涉及一種實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,包括以下步驟:
[0009]步驟A:初始化用戶容器、類型容器、權(quán)限容器和權(quán)限分配容器;
[0010]步驟B:將用戶的唯一標(biāo)識符存儲至用戶容器,將要進(jìn)行訪問權(quán)限控制的數(shù)據(jù)庫對象的唯一標(biāo)識符存儲到類型容器,將權(quán)限信息的唯一標(biāo)識符存儲到權(quán)限容器,使用權(quán)限分配容器建立用戶容器的唯一標(biāo)識符、類型容器的唯一標(biāo)識符、權(quán)限容器的唯一標(biāo)識符之間的關(guān)聯(lián);
[0011]步驟C:當(dāng)用戶訪問系統(tǒng)的數(shù)據(jù)庫對象時(shí),根據(jù)權(quán)限分配容器查找該用戶的唯一標(biāo)識符、與用戶的唯一標(biāo)識符對應(yīng)的類型唯一標(biāo)識符、與類型的唯一標(biāo)識符對應(yīng)的權(quán)限信息的唯一標(biāo)識符,并為用戶創(chuàng)建ORM查詢表達(dá)式;
[0012]步驟D:通過權(quán)限信息的唯一標(biāo)識符獲取權(quán)限信息,將權(quán)限信息轉(zhuǎn)換成ORM能夠識別的查詢限定表達(dá)式;
[0013]步驟E:將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。
[0014]作為一種優(yōu)選的實(shí)施方式,所述步驟E之后還包括:系統(tǒng)根據(jù)步驟E中組合得到的ORM表達(dá)式將訪問結(jié)果返回給用戶。
[0015]作為另一種優(yōu)選的實(shí)施方式,步驟E中,通過邏輯與的方式將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。
[0016]作為另一種優(yōu)選的實(shí)施方式,所述權(quán)限信息包括“可訪問字段”與“權(quán)限代碼”。
[0017]作為另一種優(yōu)選的實(shí)施方式,所述權(quán)限信息的類型為Jason字符串。
[0018]作為另一種優(yōu)選的實(shí)施方式,所述數(shù)據(jù)庫對象為數(shù)據(jù)庫表。
[0019]【有益效果】
[0020]本發(fā)明提出的技術(shù)方案具有以下有益效果:
[0021]本發(fā)明基于ORM思想實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制,具體地,通過將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式,實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限的控制,本發(fā)明能夠有效避免采用SQL語句拼接的方式所存在的性能問題以及安全問題。
【附圖說明】
[0022]圖1為本發(fā)明的實(shí)施例一提供的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法的流程圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖,對本發(fā)明的【具體實(shí)施方式】進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例,也不是對本發(fā)明的限制?;诒景l(fā)明的實(shí)施例,本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
[0024]圖1為本發(fā)明實(shí)施例一提供的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法的流程圖。如圖1所示,該方法包括步驟SI至步驟S6,下面分別對步驟SI至步驟S6進(jìn)行詳細(xì)描述。
[0025]步驟S 1:初始化。
[0026]初始化用戶容器、類型容器、權(quán)限容器和權(quán)限分配容器。
[0027]步驟S2:建立各個(gè)容器之間的關(guān)聯(lián)。
[0028]將用戶的唯一標(biāo)識符存儲至用戶容器,將要進(jìn)行訪問權(quán)限控制的數(shù)據(jù)庫對象的唯一標(biāo)識符存儲到類型容器,將權(quán)限信息的唯一標(biāo)識符存儲到權(quán)限容器,使用權(quán)限分配容器建立用戶容器的唯一標(biāo)識符、類型容器的唯一標(biāo)識符、權(quán)限容器的唯一標(biāo)識符之間的關(guān)聯(lián)。
[0029]步驟S3:當(dāng)用戶訪問系統(tǒng)的數(shù)據(jù)庫對象時(shí),查找對應(yīng)的標(biāo)識符。
[0030]步驟S3中,當(dāng)用戶訪問系統(tǒng)的數(shù)據(jù)庫對象時(shí),根據(jù)權(quán)限分配容器查找該用戶的唯一標(biāo)識符、與用戶的唯一標(biāo)識符對應(yīng)的類型(即要進(jìn)行訪問權(quán)限控制的數(shù)據(jù)庫對象)的唯一標(biāo)識符、與類型的唯一標(biāo)識符對應(yīng)的權(quán)限信息的唯一標(biāo)識符。本實(shí)施中,數(shù)據(jù)庫對象為數(shù)據(jù)庫表,另外,系統(tǒng)還為用戶創(chuàng)建ORM查詢表達(dá)式。本實(shí)施例中,假設(shè)用戶工號337登錄系統(tǒng),在系統(tǒng)的客戶名稱中,輸入“客戶名稱1”,點(diǎn)擊查詢,則根據(jù)權(quán)限分配容器查找用戶工號337在用戶容器中的唯一標(biāo)識符,查找“客戶信息”這種類型在類型容器中對應(yīng)的唯一標(biāo)識符,權(quán)限分配容器查找得到此用戶的唯一標(biāo)識符、類型的唯一標(biāo)識對應(yīng)的權(quán)限信息的唯一標(biāo)識符,同時(shí)還為工號337的用戶創(chuàng)建ORM查詢表達(dá)式。
[0031]步驟S4:生成查詢限定表達(dá)式。
[0032]步驟S4中,通過權(quán)限信息的唯一標(biāo)識符獲取權(quán)限信息,將權(quán)限信息轉(zhuǎn)換成ORM能夠識別的查詢限定表達(dá)式,本實(shí)施例中,將創(chuàng)建客戶名稱為“客戶名稱I ”的ORM查詢限定表達(dá)式。另外,本實(shí)施例中的權(quán)限信息包括“可訪問字段”與“權(quán)限代碼”。權(quán)限信息的類型為Jason字符串。本實(shí)施例中,可訪問字段如“[客戶名,地址]”,權(quán)限代碼如“[{〃Field〃:〃服務(wù)人員 〃,"Operator": "Equals","Relat1n": "And","Value": 〃 用戶.工號 〃}] ”,兩個(gè)字段信息的格式均為Jason字符串格式。
[0033]步驟S5:構(gòu)造ORM表達(dá)式。
[0034]步驟S5中,將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟S4中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。具體地,通過邏輯與的方式將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟S4中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。
[0035]步驟S6:訪問結(jié)果返回。
[0036]步驟S6中,系統(tǒng)根據(jù)步驟S5中組合得到的ORM表達(dá)式將訪問結(jié)果返回給用戶。具體地,系統(tǒng)“將客戶名稱I”對應(yīng)的客戶信息返回給工號為337的用戶。
[0037]從以上實(shí)施例可以看出,本發(fā)明實(shí)施例基于ORM思想實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制,具體地,通過將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式,實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限的控制,本發(fā)明實(shí)施例能夠有效避免采用SQL語句拼接的方式所存在的性能問題以及安全問題。
【主權(quán)項(xiàng)】
1.一種實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于包括以下步驟: 步驟A:初始化用戶容器、類型容器、權(quán)限容器和權(quán)限分配容器; 步驟B:將用戶的唯一標(biāo)識符存儲至用戶容器,將要進(jìn)行訪問權(quán)限控制的數(shù)據(jù)庫對象的唯一標(biāo)識符存儲到類型容器,將權(quán)限信息的唯一標(biāo)識符存儲到權(quán)限容器,使用權(quán)限分配容器建立用戶容器的唯一標(biāo)識符、類型容器的唯一標(biāo)識符、權(quán)限容器的唯一標(biāo)識符之間的關(guān)聯(lián); 步驟C:當(dāng)用戶訪問系統(tǒng)的數(shù)據(jù)庫對象時(shí),根據(jù)權(quán)限分配容器查找該用戶的唯一標(biāo)識符、與用戶的唯一標(biāo)識符對應(yīng)的類型的唯一標(biāo)識符、與類型的唯一標(biāo)識符對應(yīng)的權(quán)限信息的唯一標(biāo)識符,并為用戶創(chuàng)建ORM查詢表達(dá)式; 步驟D:通過權(quán)限信息的唯一標(biāo)識符獲取權(quán)限信息,將權(quán)限信息轉(zhuǎn)換成ORM能夠識別的查詢限定表達(dá)式; 步驟E:將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于所述步驟E之后還包括:系統(tǒng)根據(jù)步驟E中組合得到的ORM表達(dá)式將訪問結(jié)果返回給用戶。3.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于所述步驟E中,通過邏輯與的方式將系統(tǒng)為用戶創(chuàng)建的ORM查詢表達(dá)式與步驟D中得到的查詢限定表達(dá)式組合成ORM表達(dá)式。4.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于所述權(quán)限信息包括“可訪問字段”與“權(quán)限代碼”。5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于所述權(quán)限信息的類型為Jason字符串。6.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,其特征在于所述數(shù)據(jù)庫對象為數(shù)據(jù)庫表。
【專利摘要】本發(fā)明涉及計(jì)算機(jī)信息處理技術(shù)領(lǐng)域,提供一種實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限控制的方法,以解決目前的數(shù)據(jù)訪問權(quán)限控制存在的性能問題及安全問題,該方法包括:初始化;建立各個(gè)容器之間的關(guān)聯(lián);當(dāng)用戶訪問系統(tǒng)的數(shù)據(jù)庫對象時(shí),查找對應(yīng)的標(biāo)識符;生成查詢限定表達(dá)式;構(gòu)造ORM表達(dá)式;訪問結(jié)果返回。本發(fā)明提出的技術(shù)方案能夠有效避免采用SQL語句拼接的方式所存在的性能問題以及安全問題。
【IPC分類】G06F17/30, G06F21/62
【公開號】CN105069035
【申請?zhí)枴緾N201510434185
【發(fā)明人】曹劍
【申請人】成都市卓??萍加邢薰?br>【公開日】2015年11月18日
【申請日】2015年7月22日