posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

权限设计的探讨阅读后感

Posted on 2008-04-07 22:49 G_G 阅读(2791) 评论(6)  编辑  收藏 所属分类: javaGeneral

    权限设计的探讨阅读后感

    文章路径:http://www.chinaitpower.com/A200508/2005-08-07/183934.html

    权限设计通常包括数据库设计、应用程序接口(API)设计、程序实现三个部分。

    权限分类:

        首先是针对数据存取的权限,通常有录入、浏览、修改、删除四种。

        其次是功能,它可以包括例如统计等所有非直接数据存取操作,另外,我们还可能对一些关键数据表某些字段的存取进行限制。

 

 

权限表及相关内容大体可以用六个表来描述,如下: 
    1 拥有权限角色(即用户组):具体拥有权限描述实体。

    2 用户表:用户的描述,其它(如地址、电话等信息); 
    3 角色-用户对应表:该表记录用户与角色之间的对应关系(多对多关系),一个用户可以隶属于多个角色,一个角色组也可拥有多个用户。

    4 权限列表:程序所有权限列表。该表记录所有要加以控制的权限,如录入、修改、删除、执行等; 
    5 权限-角色-用户对应表权限对应角色(多对多关系)再由4表关系到用户

 

在探讨文中的第4条,我怎么都不太理解?望大家探讨。反向权限吗?那怎么和系统中的拥有一起描述?

 

下面提出一些自己的见解:

     1 用户表:用户的描述,其它(如地址、电话等信息); 

   2 权限列表:程序所有权限列表。该表记录所有要加以控制的权限,如录入、修改、删除、执行等; 
   3 权限树(模糊看成角色,但有些不同。树性结构,结构数据库中表外键自己):孩子接点继承父亲接点全部权限,并在次上扩充和删减权限建立自己分支。

   4 权限列表-权限树:(多对多关系)用于描述此权限树接点父亲接点权限继承下,由自己添加和消减的权限

                                        本表中用一列枚举列用于表示本纪录是添加或删减权限。

   5 用户-权限树:权限树接点对应用户(多对一)关系。

感觉自己的这种框架,能很好的扩充(在某接点下增,删某权限或直接找到最向近的一个权限树接点并继承)  

大家多说说自己的见解,和对比下这两个框架的一些优缺点把。本人随时恭听。G_G

与2008-4-7 22:50北京

google doc 原稿: http://docs.google.com/Doc?id=dkvfctc_16hgvfkbfs

 


评论

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-08 13:33 by Ron
我关于权限系统的一篇总结。
http://ronliu.freehoxt.com/blog/?p=10
所谓“限定内容列表”,用来限制用户所能操作的表的范围,字段的范围。比如对某些字段只读,不过我倾向与单独做个表。

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-08 21:05 by FastUnit
在jdon上看过几篇不错的讨论:
http://www.jdon.com/jivejdon/thread/7309.html
http://www.jdon.com/jivejdon/thread/10122.html
http://www.jdon.com/jivejdon/thread/4110.html

我自己的设计大致上是这样分解的:
1、权限点:访问权限(页面权限、点权限、列权限、行权限/数据权限),执行权限(包含增删改和其他业务操作)
2、组织结构:用户、角色、用户组、机构(后两者可选),允许对用户从不同角度分组,方便管理和降低授权工作量
3、权限点与用户关联:以角色为核心间接关联,分级授权
4、权限检查:由可配置的拦截器统一管理

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-08 22:18 by 和风细雨
关注一下。

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-11 08:35 by 如坐春风
http://www.blogjava.net/sitinspring/archive/2008/04/10/191768.html

这是我对权限系统的一点粗浅看法.

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-12 12:55 by 一农
建议大家还是深入了解一下Acegi,Acegi设计的思路和楼主有所不同。在Acegi里有用户,授权,资源,以及在资源被访问前进行权限的检查。一个用户可以有多个授权,一个授权可以对应多种资源,而资源可以多种多样。在Acegi的默认实现了有url,方法,领域对象。而用户和授权的关系,并不只是直接把授权交给用户,还可以把授权分配给角色,给用户组,给部门等,然后用户和角色,用户组,部门关联起来,几种分配方式可以配合使用。
按照这种思路,采用不同的授权方式,应该是可以用一套类似的程序,实现多种的授权方式。Acegi关注的够底层,所以可以有更大的扩展,适应更多的情况。

# re: 权限设计的探讨阅读后感  回复  更多评论   

2008-04-14 09:20 by G_G
@一农
谢谢提醒!

只有注册用户登录后才能发表评论。


网站导航: