gbk

          通用數(shù)據(jù)權(quán)限管理系統(tǒng)設(shè)計(jì)

          通用數(shù)據(jù)權(quán)限管理系統(tǒng)設(shè)計(jì)(一)
           
          作者:逸云
           
          前言:
           本文提供一種集成功能權(quán)限和數(shù)據(jù)權(quán)限的解決方法,以滿足多層次組織中權(quán)限管理方面的集中控制。本方法是RBAC(基于角色的訪問(wèn)控制方法)的進(jìn)一步擴(kuò)展和延伸,即在功能權(quán)限的基礎(chǔ)上增加數(shù)據(jù)權(quán)限的管理,實(shí)現(xiàn)數(shù)據(jù)權(quán)限和功能權(quán)限的集中處理。
           
          解釋:
           功能權(quán)限:能做什么的問(wèn)題,如增加銷售訂單;
           數(shù)據(jù)權(quán)限:能在哪里干什么的問(wèn)題,如察看北京分公司海淀銷售部張三的銷售訂單;
           
          術(shù)語(yǔ):
           資源:系統(tǒng)中的資源,主要是各種業(yè)務(wù)對(duì)象,如銷售單、付款單等;
           操作類型:對(duì)資源可能的訪問(wèn)方法,如增加、刪除、修改等;
           功能:對(duì)資源的操作,是資源與操作類型的二元組,如增加銷售單、修改銷售單等;
           數(shù)據(jù)類型:業(yè)務(wù)系統(tǒng)中常用的數(shù)據(jù)權(quán)限類型,如公司、部門、項(xiàng)目、個(gè)人等;
           數(shù)據(jù)對(duì)象:具體的業(yè)務(wù)對(duì)象,如甲公司、乙部門等等,包括所有涉及到數(shù)據(jù)權(quán)限的對(duì)象值;
           權(quán)限:角色可使用的功能,分角色的功能權(quán)限和角色的數(shù)據(jù)權(quán)限;
           角色:特定權(quán)限的集合;
           用戶:參與系統(tǒng)活動(dòng)的主體,如人,系統(tǒng)等。
           
           
          通用數(shù)據(jù)權(quán)限管理系統(tǒng)設(shè)計(jì)(二)
           
          方法說(shuō)明:
           在實(shí)際應(yīng)用中,數(shù)據(jù)權(quán)限的控制點(diǎn)一般相對(duì)固定,如針對(duì)公司、部門、個(gè)人、客戶、供應(yīng)商等,也就是說(shuō)數(shù)據(jù)權(quán)限一般針對(duì)指定數(shù)據(jù)類型下的一些數(shù)據(jù)對(duì)象。
           
           本方法中,數(shù)據(jù)權(quán)限的依賴于功能權(quán)限,是對(duì)功能權(quán)限的進(jìn)一步描述,說(shuō)明角色在指定的功能點(diǎn)上的數(shù)據(jù)控制權(quán)限。
          本方法中采用“沒(méi)有明確規(guī)定即視為有效”的原則,如果沒(méi)有定義功能的數(shù)據(jù)權(quán)限,則說(shuō)明該角色具有該功能的全部的權(quán)限。如果定義了功能的某種類型的數(shù)據(jù)權(quán)限,則該用戶只具有該類型下指定數(shù)據(jù)的數(shù)據(jù)權(quán)限。
           
           這段話比較繞口,下面舉個(gè)例子實(shí)際例子。
           
           某公司有北京銷售部、上海銷售部和廣州銷售部三個(gè)銷售部,現(xiàn)在需要定義幾種角色:
              銷售總監(jiān)      -- 能察看所有銷售部的銷售訂單;
              北京銷售經(jīng)理 -- 只能察看北京銷售部的所有銷售訂單;
              上海銷售經(jīng)理 -- 只能察看上海銷售部的所有銷售訂單;  
              廣州銷售經(jīng)理 -- 只能察看廣州銷售部的所有銷售訂單;  
           
           上述角色的定義如下:
           
               -------------------------------------------------------------------
               角色名稱             功能             數(shù)據(jù)類型     數(shù)據(jù)對(duì)象  
               -------------------------------------------------------------------
               銷售總監(jiān)           察看銷售訂單                                 
               北京銷售經(jīng)理       察看銷售訂單         部門         北京  
               上海銷售經(jīng)理       察看銷售訂單         部門         上海     
               廣州銷售經(jīng)理       察看銷售訂單         部門         廣州     
               -------------------------------------------------------------------
           
              上述定義中,銷售總監(jiān)只定義了功能權(quán)限,而沒(méi)有定義數(shù)據(jù)權(quán)限,所以銷售總監(jiān)能夠察看所有的銷售訂單;而其他幾位銷售經(jīng)理分別定義了這一功能的數(shù)據(jù)權(quán)限,所以只能察看指定部門的銷售訂單。
           
               在實(shí)際應(yīng)用中,往往會(huì)出現(xiàn)部門分組,組長(zhǎng)能夠察看本組所有人員處理的銷售訂單的情況,以及某些情況下,某些人只能察看本人的銷售訂單的情況,這些特殊情況在上述的說(shuō)明中無(wú)法解決,需要在設(shè)計(jì)和實(shí)現(xiàn)中進(jìn)行處理。
           
           
              北京銷售代表 -- 只能察看北京銷售部的本人的所有銷售訂單;  
               北京銷售代表         察看銷售訂單           部門            北京     
                                                           個(gè)人                  
           
           
          通用數(shù)據(jù)權(quán)限管理系統(tǒng)設(shè)計(jì)(三)--數(shù)據(jù)庫(kù)設(shè)計(jì)
           
          我們先來(lái)看看傳統(tǒng)的基于角色的權(quán)限管理系統(tǒng),如下圖所示,最簡(jiǎn)單的基于角色的權(quán)限管理由系統(tǒng)功能、系統(tǒng)角色、系統(tǒng)用戶、角色功能和用戶角色五部分組成。
              圖一:基于角色的數(shù)據(jù)庫(kù)結(jié)構(gòu)
          為實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制,在設(shè)計(jì)上對(duì)基于角色的權(quán)限管理進(jìn)行擴(kuò)充,如下圖所示:
           
          圖二:通用數(shù)據(jù)權(quán)限管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
          對(duì)比兩張圖,我們可以看到,他們之間的主要變化為:
          1、 增加系統(tǒng)資源信息和操作類型信息,系統(tǒng)資源為樹(shù)形結(jié)構(gòu)、如銷售模塊、銷售訂單等;操作類型記錄可能的操作,如增加、刪除、修改、查看、查詢等,系統(tǒng)功能是資源與操作類型的組合,對(duì)資源的操作就是系統(tǒng)功能。
          2、 增加數(shù)據(jù)對(duì)象類型和數(shù)據(jù)對(duì)象兩張表,數(shù)據(jù)對(duì)象類型記錄系統(tǒng)中需要控制的對(duì)象類型,如部門、庫(kù)房、員工、客戶、供應(yīng)商等;數(shù)據(jù)對(duì)象記錄各對(duì)象類型的對(duì)象實(shí)例,如北京銷售部、上海銷售部、張三、李四等等。(獨(dú)立保存的好處后面會(huì)說(shuō)到)
          3、 增加系統(tǒng)資源與數(shù)據(jù)對(duì)象類型的關(guān)聯(lián)表(多對(duì)多),本表為配置表,說(shuō)明某種資源可能需要的控制點(diǎn),如銷售訂單與部門類型的關(guān)聯(lián)可能涉及到分部門分配權(quán)限;銷售訂單與客戶的關(guān)聯(lián)可能涉及到按客戶分配權(quán)限等等。
          4、 增加數(shù)據(jù)對(duì)象與角色權(quán)限的關(guān)聯(lián),這張表是真正最終實(shí)現(xiàn)數(shù)據(jù)權(quán)限管理的所在地。
           
          通過(guò)這種設(shè)計(jì),能夠最小化地減少對(duì)原有權(quán)限系統(tǒng)的更改,并且可以很靈活地增加數(shù)據(jù)的控制點(diǎn)。在產(chǎn)品化軟件的設(shè)計(jì)中使用,能夠靈活滿足客戶的需要。

          posted on 2007-11-09 12:34 百科 閱讀(223) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 苗栗市| 山东省| 府谷县| 盐城市| 丰台区| 利川市| 忻州市| 博兴县| 大关县| 观塘区| 金湖县| 平阴县| 象山县| 青浦区| 霍林郭勒市| 江油市| 九龙坡区| 扶沟县| 孟津县| 平遥县| 区。| 宁阳县| 新兴县| 蓬莱市| 杭州市| 洱源县| 连云港市| 西吉县| 沭阳县| 北川| 福州市| 乐昌市| 赤城县| 苍山县| 纳雍县| 九寨沟县| 城市| 枣强县| 乌拉特前旗| 咸丰县| 永修县|