一種數(shù)據(jù)權(quán)限訪問控制模型的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)權(quán)限訪問控制模型,涉及一種數(shù)據(jù)訪問控制的方法,更具體地說,通過對機(jī)構(gòu)間關(guān)系的定義和數(shù)據(jù)訪問權(quán)限屬性設(shè)置,實(shí)現(xiàn)用戶對數(shù)據(jù)訪問權(quán)限的控制。
【背景技術(shù)】
[0002]RBAC基于角色的訪問控制(Role-Based Access Control),作為傳統(tǒng)訪問控制(自主訪問,強(qiáng)制訪問)的有前景的代替受到廣泛的關(guān)注。在RBAC中,權(quán)限與角色相關(guān)聯(lián),用戶通過成為適當(dāng)角色的成員而得到這些角色的權(quán)限。這就極大地簡化了權(quán)限的管理。在一個(gè)組織中,角色是為了完成各種工作而創(chuàng)造,用戶則依據(jù)它的責(zé)任和資格來被指派相應(yīng)的角色,用戶可以很容易地從一個(gè)角色被指派到另一個(gè)角色。角色可依新的需求和系統(tǒng)的合并而賦予新的權(quán)限,而權(quán)限也可根據(jù)需要而從某角色中回收。角色與角色的關(guān)系可以建立起來以囊括更廣泛的客觀情況。
[0003]角色訪問控制(RBAC)引入了 Role的概念,目的是為了隔離User(即動(dòng)作主體,Subject)與 Privilege (權(quán)限,表不對 Resource 的一個(gè)操作,即 Operat1n+Resource)。
[0004]Role作為一個(gè)用戶(User)與權(quán)限(Privilege)的代理層,解稱了權(quán)限和用戶的關(guān)系,所有的授權(quán)應(yīng)該給予Role而不是直接給User或Group。Privilege是權(quán)限顆粒,由Operat1n和Resource組成,表示對Resource的一個(gè)Operat1n。例如,對于新聞的刪除操作。Role-Privilege是many-to-many的關(guān)系,這就是權(quán)限的核心。
[0005]基于角色的訪問控制方法(RBAC)的顯著的兩大特征是:1.由于角色/權(quán)限之間的變化比角色/用戶關(guān)系之間的變化相對要慢得多,減小了授權(quán)管理的復(fù)雜性,降低管理開銷。2.靈活地支持企業(yè)的安全策略,并對企業(yè)的變化有很大的伸縮性。
[0006]基于RBAC模型的訪問控制,該模型是功能性權(quán)限訪問控制,不是數(shù)據(jù)權(quán)限訪問控制,因此做不到對數(shù)據(jù)記錄級的訪問控制。有些項(xiàng)目即使做到了對數(shù)據(jù)記錄級的訪問控制,但和項(xiàng)目耦合度太高,不能剝離,難以做到推廣。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題是:本發(fā)明為了克服上述模型問題的缺點(diǎn),提供了一種新的數(shù)據(jù)訪問控制模型。
[0008]本發(fā)明所采用的技術(shù)方案為:
一種數(shù)據(jù)權(quán)限訪問控制模型,在傳統(tǒng)權(quán)限控制基于機(jī)構(gòu)、角色、用戶、菜單四類實(shí)體的基礎(chǔ),增加機(jī)構(gòu)關(guān)系、數(shù)據(jù)訪問權(quán)限屬性兩項(xiàng)內(nèi)容,其中:
機(jī)構(gòu)關(guān)系分為:包含、歸屬、友鄰、陌生四種;
數(shù)據(jù)訪問權(quán)限屬性分為:公共、私有、保護(hù)三種。
[0009]含義及相互關(guān)系說明如下:
假設(shè)A、B、C是三個(gè)機(jī)構(gòu),其中A包含B、C,B、C在機(jī)構(gòu)關(guān)系上從屬于A或者說A是B、C的上級;在數(shù)據(jù)訪問權(quán)限上,A的用戶可以訪問屬于B、C的公共型和保護(hù)型數(shù)據(jù),不能訪問屬于B、C的私有型數(shù)據(jù);B、C能訪問屬于A的公共型數(shù)據(jù),不能訪問屬于A的保護(hù)型和私有型數(shù)據(jù)。
[0010]假設(shè)A、B、C是三個(gè)機(jī)構(gòu),B、C歸屬A,B、C在機(jī)構(gòu)關(guān)系上從屬于A或者說B、C是A的下級;在數(shù)據(jù)訪問權(quán)限上,分屬B、C的用戶可以訪問屬于A的公共型數(shù)據(jù),不能訪問屬于A的保護(hù)型和私有型數(shù)據(jù);但A可以訪問屬于B的公共型和保護(hù)型數(shù)據(jù),不能訪問屬于B的私有型數(shù)據(jù)。
[0011 ] 假設(shè)A、B、C是三個(gè)機(jī)構(gòu),A、B、C為友鄰關(guān)系,A、B、C是平等的朋友關(guān)系,不存在上下級之分;在數(shù)據(jù)訪問權(quán)限上,分屬于A、B、C的用戶都可以訪問屬于A或?qū)儆贐或?qū)儆贑的公共型和保護(hù)型數(shù)據(jù),但不能訪問彼此的私有數(shù)據(jù)。
[0012]假設(shè)A、B、C是三個(gè)機(jī)構(gòu),A、B、C為陌生關(guān)系,A、B、C互不相關(guān),不需要彼此提供任何支撐;在數(shù)據(jù)訪問權(quán)限上,屬于它們的用戶,相互不能訪問屬于彼此的數(shù)據(jù)。
[0013]注意事項(xiàng):
機(jī)構(gòu)之間的關(guān)系,只能是上下級關(guān)系、友鄰關(guān)系、陌生關(guān)系中的一種,其中上下級關(guān)系有方向性,這里用包含、歸屬來區(qū)分。
[0014]所述模型數(shù)據(jù)的訪問權(quán)限控制實(shí)現(xiàn)步驟如下:
1)數(shù)據(jù)庫層,建立機(jī)構(gòu)關(guān)系表,表中字段有:主機(jī)構(gòu)ID、從機(jī)構(gòu)ID、關(guān)系代碼、備注;業(yè)務(wù)表中增加字段“訪問權(quán)限控制”;
2)設(shè)置數(shù)據(jù)的“訪問權(quán)限控制”屬性和建立機(jī)構(gòu)間的關(guān)系,“訪問權(quán)限控制”該字段有public、protect、private 三種類型;
3)建立PO類的父類和機(jī)構(gòu)關(guān)系表對應(yīng)的PO類;如果有父類,在父類中增加“訪問權(quán)限控制”屬性,并生成對應(yīng)的set/get方法;如果沒有父類,新建PO父類,其他業(yè)務(wù)PO類繼承此類;
4)建立DAO的父類,如果有父類,在父類中增加一個(gè)方法,此方法實(shí)現(xiàn)數(shù)據(jù)訪問權(quán)限的控制功能;如果沒有父類,新建DAO父類,其他DAO實(shí)現(xiàn)類繼承此類;
5)在Service類中調(diào)用DAO的數(shù)據(jù)訪問權(quán)限控制和數(shù)據(jù)查詢的方法,實(shí)現(xiàn)帶有數(shù)據(jù)訪問權(quán)限控制的方法。
[0015]本發(fā)明的有益效果為:本發(fā)明通過對機(jī)構(gòu)間關(guān)系的定義和數(shù)據(jù)訪問權(quán)限屬性設(shè)置,實(shí)現(xiàn)用戶對數(shù)據(jù)訪問權(quán)限的控制,便于推廣和應(yīng)用。
【附圖說明】
[0016]圖1為本發(fā)明包含關(guān)系訪問權(quán)限示意圖;
圖2本發(fā)明友鄰關(guān)系訪問權(quán)限示意圖;
圖3本發(fā)明陌生關(guān)系訪問權(quán)限示意圖。
【具體實(shí)施方式】
[0017]下面參照附圖所示,通過【具體實(shí)施方式】對本發(fā)明進(jìn)一步說明:
一種數(shù)據(jù)權(quán)限訪問控制模型,在傳統(tǒng)權(quán)限控制基于機(jī)構(gòu)、角色、用戶、菜單四類實(shí)體的基礎(chǔ),增加機(jī)構(gòu)關(guān)系、數(shù)據(jù)訪問權(quán)限屬性兩項(xiàng)內(nèi)容,其中: 機(jī)構(gòu)關(guān)系分為:包含、歸屬、友鄰、陌生四種;
數(shù)據(jù)訪問權(quán)限屬性分為:公共、私有、保護(hù)三種。
[0018]含義及相互關(guān)系說明如下:
如圖1所示,假