论坛首页 Java企业应用论坛

请教权限设计中的关系问题

浏览 23221 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-02-27  
系统中有用户,角色,权限,资源。用户和角色是多对多关系,角色和权限多对多,权限和资源也是多对多的关系,这样的设计是否合理?
另外如果要加上组的概念,是否设计该变成用户和组多对多,组和角色多对多,角色权限多对多,权限,资源多对多?
感觉这么多的多对多好像不应该,请问大家该如何设计?
   发表时间:2004-02-27  
权限设计中有用户、组、角色、资源、权限几个对象组成,无论关系怎样复杂,最终的目的是要把用户与资源的关系描述出来,也就是最终体现在某用户对某些资源有哪些权限,用一张表来存储,包含用户ID、资源ID、权限列表,权限是相对独立的对象,比如:查询、修改、添加、删除等,而组、角色其实是为了管理、方便维护而人为产生的,最重要的是用户、资源、权限的关系。
0 请登录后投票
   发表时间:2004-02-27  
谢谢楼上的回答,不过用户,权限,资源也都是多对多的关系。这样是否恰当了?用户(n---m)权限(n--m)资源。
我看了本论坛的dingyd设计的一个权限系统,他里面很多都是没有关联的,是在
程序里面调用的。感觉好象没有把hibernate的威力发挥出来,
不好意思啊,dingyd老大,呵呵!其实你的代码已经让小弟收益良多,谢谢了!
0 请登录后投票
   发表时间:2004-02-29  
看样子似乎是比较复杂,我也没试过,不知道hibernate是否能够高效地实现这些关系,试试看好了。

我觉得也并不是在任何情况下,都要采用hibernate的各种关联,有时候还得要考虑效率的问题。比如说,一个贴子Thread,它可能有多个(几十,上百?)个回贴,这时如果采用one-to-many的话效率可能很低。
0 请登录后投票
   发表时间:2004-03-03  
看看appuse案例(用struts+hibernate和spring+hibernate),它基本满足一般应用的权限要求。它主要设计思路是:
      
user--userole--role

       role--rolepermission--permission

       user--usergrouprole--role
                        |
                    group

  如果权限需求复杂的话(如将permission在拆分为operation+resource,将resource设计成层次结构的,将role也设计成层次结构的),研究一下RBAC。
0 请登录后投票
   发表时间:2004-05-20  
OldWen 写道
看看appuse案例(用struts+hibernate和spring+hibernate),它基本满足一般应用的权限要求。它主要设计思路是:
      
user--userole--role

       role--rolepermission--permission

       user--usergrouprole--role
                        |
                    group

  如果权限需求复杂的话(如将permission在拆分为operation+resource,将resource设计成层次结构的,将role也设计成层次结构的),研究一下RBAC。


我是这样设计的:
group <---- operator
group <---- role
operator <---> operatorRoles <---> role
role <---> roleFunctions <---> function
0 请登录后投票
   发表时间:2004-06-01  
请问:“appuse案例(用struts+hibernate和spring+hibernate)”是什么啊?是开源项目吗?可是我在SF中又没有搜到!
0 请登录后投票
   发表时间:2004-06-02  
你可以在google里面直接搜索appfuse,另外楼主可以看一下acegi-security-0.5,这个东西是在SPRING下做的安全系统,很方便。我最近在研究,用起来感觉很爽。可以做到在不改变你原来代码的情况下,直接对方法的调用进行身份验证。
0 请登录后投票
   发表时间:2004-06-05  
谢谢楼上!原来不是appuse而是appfuse,难怪搜不到!看来楼上的对acegi-security-0.5已经很有感觉了。能否写点心得大家共享啊!:)
0 请登录后投票
   发表时间:2006-10-19  
RBAC 是什么东西啊
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics