<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0
     一.引言

           因為做過的一些系統(tǒng)的權(quán)限管理的功能雖然在逐步完善,但總有些不盡人意的地方,總想抽個時間來更好的思考一下權(quán)限系統(tǒng)的設(shè)計。

           權(quán)限系統(tǒng)一直以來是我們應(yīng)用系統(tǒng)不可缺少的一個部分,若每個應(yīng)用系統(tǒng)都重新對系統(tǒng)的權(quán)限進(jìn)行設(shè)計,以滿足不同系統(tǒng)用戶的需求,將會浪費我們不少寶貴時間,所以花時間來設(shè)計一個相對通用的權(quán)限系統(tǒng)是很有意義的。

    二.設(shè)計目標(biāo)

           設(shè)計一個靈活、通用、方便的權(quán)限管理系統(tǒng)。

           在這個系統(tǒng)中,我們需要對系統(tǒng)的所有資源進(jìn)行權(quán)限控制,那么系統(tǒng)中的資源包括哪些呢?我們可以把這些資源簡單概括為靜態(tài)資源(功能操作、數(shù)據(jù)列)和動態(tài)資源(數(shù)據(jù)),也分別稱為對象資源數(shù)據(jù)資源,后者是我們在系統(tǒng)設(shè)計與實現(xiàn)中的叫法。

    系統(tǒng)的目標(biāo)就是對應(yīng)用系統(tǒng)的所有對象資源和數(shù)據(jù)資源進(jìn)行權(quán)限控制,比如應(yīng)用系統(tǒng)的功能菜單、各個界面的按鈕、數(shù)據(jù)顯示的列以及各種行級數(shù)據(jù)進(jìn)行權(quán)限的操控。

    三.相關(guān)對象及其關(guān)系

           大概理清了一下權(quán)限系統(tǒng)的相關(guān)概念,如下所示:

    1.       權(quán)限

    系統(tǒng)的所有權(quán)限信息。權(quán)限具有上下級關(guān)系,是一個樹狀的結(jié)構(gòu)。下面來看一個例子

    系統(tǒng)管理

            用戶管理

                   查看用戶

                    新增用戶

                         修改用戶

                         刪除用戶

           對于上面的每個權(quán)限,又存在兩種情況,一個是只是可訪問,另一種是可授權(quán),例如對于“查看用戶”這個權(quán)限,如果用戶只被授予“可訪問”,那么他就不能將他所具有的這個權(quán)限分配給其他人。

    2.       用戶

    應(yīng)用系統(tǒng)的具體操作者,用戶可以自己擁有權(quán)限信息,可以歸屬于0n個角色,可屬于0n個組。他的權(quán)限集是自身具有的權(quán)限、所屬的各角色具有的權(quán)限、所屬的各組具有的權(quán)限的合集。它與權(quán)限、角色、組之間的關(guān)系都是nn的關(guān)系。

    3.       角色

    為了對許多擁有相似權(quán)限的用戶進(jìn)行分類管理,定義了角色的概念,例如系統(tǒng)管理員、管理員、用戶、訪客等角色。角色具有上下級關(guān)系,可以形成樹狀視圖,父級角色的權(quán)限是自身及它的所有子角色的權(quán)限的綜合。父級角色的用戶、父級角色的組同理可推。

    4.      

    為了更好地管理用戶,對用戶進(jìn)行分組歸類,簡稱為用戶分組。組也具有上下級關(guān)系,可以形成樹狀視圖。在實際情況中,我們知道,組也可以具有自己的角色信息、權(quán)限信息。這讓我想到我們的QQ用戶群,一個群可以有多個用戶,一個用戶也可以加入多個群。每個群具有自己的權(quán)限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高級群等。

    針對上面提出的四種類型的對象,讓我們通過圖來看看他們之間的關(guān)系。

     

        有上圖中可以看出,這四者的關(guān)系很復(fù)雜,而實際的情況比這個圖還要復(fù)雜,權(quán)限、角色、組都具有上下級關(guān)系,權(quán)限管理是應(yīng)用系統(tǒng)中比較棘手的問題,要設(shè)計一個通用的權(quán)限管理系統(tǒng),工作量也著實不小。

    當(dāng)然對于有些項目,權(quán)限問題并不是那么復(fù)雜。有的只需要牽涉到權(quán)限和用戶兩種類型的對象,只需要給用戶分配權(quán)限即可。

    在另一些情況中,引入了角色對象,例如基于角色的權(quán)限系統(tǒng), 只需要給角色分配權(quán)限,用戶都隸屬于角色,不需要單獨為用戶分配角色信息。

    在下一篇中,我們將講述權(quán)限管理的數(shù)據(jù)庫設(shè)計等內(nèi)容。
        歡迎各位拍磚或給出寶貴意見。

        參考文章:應(yīng)用程序權(quán)限設(shè)計
                  心情小站——權(quán)限相關(guān)
                 

    posted on 2007-09-29 11:26 阿蜜果 閱讀(25911) 評論(22)  編輯  收藏 所屬分類: Open Source


    FeedBack:
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-09-29 13:07 | l_qin
    不錯,支持下。其實我也很想做一個通用的權(quán)限管理系統(tǒng)。現(xiàn)在我所在的組的一個系統(tǒng)的權(quán)限管理設(shè)計的實在是爛,隨便什么人都可以給自己配置管理員的權(quán)限,說有權(quán)限,其實是沒有權(quán)限控制的。建議看看http://www.tkk7.com/RongHao/ 的blog關(guān)于權(quán)限部分,我覺得挺不錯的  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-09-29 13:16 | 阿蜜果
    @ l_qin
    謝謝,他的blog我已經(jīng)看過了,呵呵,蠻不錯  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-09-29 16:40 | 編程、設(shè)計是職業(yè)更是愛好
    從理論上來講,深究權(quán)限的關(guān)系圖的確是這樣子,但這張圖應(yīng)該是給我設(shè)計人員看的,使用者關(guān)心的是,"我有什么權(quán)限或者我能干什么",稍微引申一下,"我在哪個組或者我是什么角色",所以感覺只有三層關(guān)系即可,User -> Group/Role -> Permission,中間的環(huán)節(jié)是為了便于管理而不是使用的,在用戶眼中,應(yīng)該就是User -> Permission.  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-09-30 00:17 | 老同學(xué)
    之前偶做過一個中等復(fù)雜的權(quán)限系統(tǒng),目標(biāo)應(yīng)用只需要實現(xiàn)幾個接口就可以完全重用。模型包括用戶、組、角色、權(quán)限、資源。不過后來發(fā)覺普通的應(yīng)用這樣的抽象有點復(fù)雜了,雖然可以進(jìn)行很靈活的控制。現(xiàn)在倒時想返樸歸真簡簡單單,用戶或組跟資源直接產(chǎn)生關(guān)系就完了。Confluence就是這樣做。  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-10-06 13:50 | mingj
    @老同學(xué)
    不錯,
    用戶-組-資源
    這樣的權(quán)限控制會簡單而有效
    類似于數(shù)據(jù)庫對用戶的權(quán)限管理  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-10-07 13:41 | java_蟈蟈
    @老同學(xué)
    同感
    靈活、簡單、有效最好......  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2007-10-07 22:26 | leekiang
    我覺得最麻煩的是如何做到所見即所得,比如有四個按鈕,分別是增刪改查,如何方便的讓沒有增刪改權(quán)限的人看不見這三個按鈕,并且禁止他直接通過url進(jìn)行增刪改。  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2008-05-10 09:33 | yootiger
    本人對這里滴組不是怎么樣清楚,是否能補充一下呢?
    yootiger@126.com   回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2008-07-16 11:21 | 麒麟
    一個組能可以當(dāng)做公司的部門來看待嗎
    zhuqil@163.com  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2009-04-28 00:02 | TaoistWar
    組好像沒多大作用吧?組和角色之間有什么根本的區(qū)別?  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2010-09-16 15:25 | ltian
    實說實說,離通用權(quán)限距離遙遠(yuǎn)。  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)[未登錄]
    2010-11-01 14:41 | Hw
    寫的太好了,要好好學(xué)習(xí)學(xué)習(xí)啊......  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)[未登錄]
    2010-11-09 13:08 | 小丸子
    看了一到三,沒有看到對動態(tài)資源或者說數(shù)據(jù)資源的權(quán)限控制啊!難道因為這與具體的數(shù)據(jù)有關(guān),就不能提取通用的模式了嗎?  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2011-04-07 13:08 | YangTang
    嗯,不錯!但還沒看懂,能整個通用的不?而且要加上Spring Security才可以!  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2011-06-16 14:01 | harley
    寫的非常好,值得學(xué)習(xí)研究

    不過我有一點不是很明白,角色的繼承是怎么回事,群組權(quán)限繼承怎么實現(xiàn)?

    謝謝!  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2012-08-10 21:14 | 小彭
    @mingj
    不錯  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2012-08-10 21:14 | 小彭
    不錯  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2013-05-14 16:35 | simpman
    剛絕你想多了。  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2013-05-14 16:37 | simpman
    感覺你想多了。一個用戶組表,一個權(quán)限表,一個權(quán)限分配表,一個用戶表就可以控制了。沒必要引入角色。  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)
    2014-05-04 11:45 | 關(guān)
    @麒麟
    當(dāng)然  回復(fù)  更多評論
      
    # re: 通用權(quán)限管理設(shè)計篇(一)[未登錄]
    2014-12-04 15:53 | 呵呵
    這個是實現(xiàn)了授權(quán),但是如果取消權(quán)限就痛苦了。如果系統(tǒng)管理員希望將某個功能的權(quán)限取消,對于那些直接付給用戶的權(quán)限怎么辦,如果系統(tǒng)有幾萬個用戶。  回復(fù)  更多評論
      
    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關(guān)注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品公开免费视频| 午夜亚洲福利在线老司机| 亚洲黄色在线观看| 免费毛片a在线观看67194| 亚洲一级免费视频| 四虎影永久在线高清免费| 一级看片免费视频| 亚洲欧洲精品久久| 国产免费拔擦拔擦8x| 在线看片免费人成视频福利| 久久精品国产亚洲AV麻豆网站| 最近中文字幕免费mv视频7| 日韩大片在线永久免费观看网站| 久久九九亚洲精品| 中字幕视频在线永久在线观看免费| 美景之屋4在线未删减免费| 亚洲精品二区国产综合野狼| 成熟女人牲交片免费观看视频| 一级做受视频免费是看美女| 亚洲电影在线免费观看| 中文字幕亚洲日本岛国片| 国产三级在线观看免费| 国产啪精品视频网站免费尤物| 国产精品亚洲片在线va| 亚洲AV无码专区国产乱码电影| 国产成人精品免费视频大全五级| 先锋影音资源片午夜在线观看视频免费播放| 亚洲熟妇无码八V在线播放| 亚洲成A人片在线观看无码不卡| 四虎精品亚洲一区二区三区| 男女做羞羞的事视频免费观看无遮挡| 国产在线精品一区免费香蕉| 亚洲av第一网站久章草| 亚洲 欧洲 自拍 另类 校园| 亚洲第一成年人网站| 亚洲AV美女一区二区三区| 国产亚洲精品拍拍拍拍拍| 亚洲精品乱码久久久久久不卡| 日韩中文无码有码免费视频| 免费亚洲视频在线观看| 亚洲av无码成人精品区在线播放|