权限设计浅谈

转载 2006年05月17日 21:08:00

权限设计浅谈——JAVA

权限体系有很多种,最常见的是基于角色的访问控制办法(RBAC),它有如下优点:
1、 减少授权管理的复杂性,降低管理开销
2、 灵活的支持企业的安全策略,对企业的变化有很大的伸缩性


 1、粗粒度:只考虑对象的级别,不考虑对象的实例
2、细粒度:考虑具体的对象的实例
比如发布新闻A,新闻就是粗粒度对象,新闻A就是细粒度对象,权限设计只考虑到粗粒度对象的权限,细粒度对象的权限认为是业务逻辑的一部分

权限设计分为下面几个要素
1、user
2、role,group
3、privilege
4、resource
5、operate

下面逐一介绍
1、 user就是人,是系统的使用者
2、 role就是角色,一个user可能担当多个角色,group是一些user的集合,group同时担当很多角色,在group中的每个user都担当group的所担当的所有角色。比如一个新闻发布系统,有发布角色记为roleA,审核角色记为roleB,我们建一个group记为groupA,并让groupA担当roleA和roleB角色,我们再为groupA添加一个user记为userA,那么userA就担当了roleA和roleB角色。group就象包容器,它包容了role和user,它使得它里面的每个user和role都建立起了对应关系。当然group并不是必需的,它仅为集中为user赋予角色提供了方便,事实上,我们为每个user赋予角色也能达到同样的效果。
(注:group还有一种使用方案,group包容的不是user和role,而是user和privilege,两者之间的差别是不大的,不推荐后种)
3、 privilege就是权限,对对象操作的权利,比如增、删、改等;一般说来,privilge不包括被操作的对象(resourse),但是在很多情况下,privilege可以简化为operate,privilege也就和resource绑定到了一起。
4、 resource就是一些对象,比如报表,记录等
5、 operate就是priviledge+resource,就是一个action,表示对resourse的具体操作。
总之,可以这样描述:在系统中,每个用户(user)担当一些角色(role),每种角色具有一些操作 (operate) 能力,每个操作由权限(privilege)和对象(resource)组成;一些具有相同role的user可以形成一个组(group),并使组(group)承担这些角色(role),这样组(group)中的每个用户也都承担了这些角色(role)。

原则上,如果用户没有某种权限,那么就没有执行某种操作的权利,就不应该看到与进行这些操作有关的东西,比如连接,按钮等,如果等到用户执行这项操作时再告诉用户没有权限的话就不是很好,比如在察看页面上,如果用户没有编辑的权限,那么页面上不应该有连接到编辑页面的连接或按钮(生成察看页面的时候,应该察看用户的权限,从而判断这些按钮或连接是否应该生成出来)。
原则上,当用户提交某项请求时,首先应该检查用户有没有提交该请求的权利,如果没有这种权利(privilege),则提示用户

系统权限管理设计

关于权限菜单的设计
  • chexlong
  • chexlong
  • 2014年07月11日 16:39
  • 140160

通用权限管理设计篇

 通用权限管理设计篇(一) 一.引言        因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。        ...

经典权限系统设计(五张表)

大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。   各表的大体表结构如下:  ...

权限的设计

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-...
  • ben1247
  • ben1247
  • 2012年01月09日 09:47
  • 14142

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

《复合模式》复杂系统权限控制&设计

有关系统权限的设计,有诸多的方案&实现方法,甚至不乏有权限相关的通用组件,当然这些可能都局限于特定的业务场景,简单的抑或是复杂的,正如它不可能真正满足所有的需求;本文通过另一个维度来实现系统权限的控制...

复杂数据权限设计方案

需求:有个权限树,资源挂在树的节点上面。父节点的权限可以访问所有子节点的资源。 更具体点,一个公司有一个部门,这个部门是棵树(权限树)。每发布一个课程,都需要设置属于哪个部门的权限。每个人属于部门。...

最简易的权限管理模型 和 标准权限管理模块 和 复杂权限系统

1、 最简易的权限管理模型 (javaweb) 适用于: 用户种类不多,系统功能不是特别复杂  在用户表中添加角色字段,用字段区分用户属于哪类角色   好处: 使用起来方便,编码量不大 缺...

三种权限设计方案的归纳和比较

权限设计是很多系统重要的组成部分,主要用于控制功能和流程,本文将几种常见的权限设计方案(权限系统的名都是自己起的)的基本设计写出来,其中不恰当处还请大家指出,我们来讨论一下.1.等级权限系统这种权限系...
  • sunhuwh
  • sunhuwh
  • 2015年11月09日 22:47
  • 2148

用户·角色·权限·表的设计

设计一个灵活、通用、方便的权限管理系统。        在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态...
  • Qsir
  • Qsir
  • 2017年05月22日 17:18
  • 3780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:权限设计浅谈
举报原因:
原因补充:

(最多只允许输入30个字)