`

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

阅读更多

 

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

 

1.等级权限系统

 

    这种权限系统在论坛中很常见,在这种系统中,权限级别如同官阶从低到高排列,每个用户拥有一个权限,其中设定了这个用户的权限等级,在用户需要执行操作前先查看其权限等级是否大于执行操作所需要的权限等级,是则进行操作。

 

在等级权限系统中领域对象用户类User的基本属性如下:

    id       // 用户ID

    name     // 用户名

 

领域对象权限类Privilege的基本属性如下:

    id       // 权限ID

    userid   // 持有此权限的用户id

    level    // 用户的权限等级

 

level的设置示例

level 对应可执行的功能

0 访问

1 可跟帖

2 可创建主贴

3 可删除主贴

4 可创建频道

5 可删除频道

6 可查看用户

7 可分配用户权限

8 可修改用户密码

9 可删除用户

...

 

使用中,执行一个操作比如创建主贴时,先从Session中取出用户,然后按其id查出其对应的权限等级,拿它和执行创建主贴所需要的等级(3)进行比较,高于则可进行创建主贴操作,否则报告权限不够.

 

等级权限系统简单易用,在如论坛等刚性控制系统中使用很好,但不适用于需要限制权限的范围的场合。

 

2.范围限制权限系统

 

    等级权限系统系统的缺点是控制范围过广,比如一个论坛中有很多子论坛,一个子论坛的分版主同时也能对另一个同等级分论坛的帖子进行控制,这在一定程度不合理,有越界的嫌疑,更好的做法是将版主权限控制在一版之内,这时我们可以采用范围限制权限系统. 这种权限系统在项目管理系统中很常见.

 

在等级权限系统中领域对象用户类User的基本属性如下:

    id       // 用户ID

    name     // 用户名

 

领域对象项目类Project的基本属性如下:

    id       // 项目ID

    name     // 项目名

 

领域对象权限类Privilege的基本属性如下:

    id       // 权限ID

    userid   // 持有此权限的用户id

    projectid // 此权限对应的项目

    level     // 用户的权限等级

 

其中,通过引入了新属性projectid,我们对权限的范围进行了有效限制,项目不同则权限等级再高也是无效,这样就起到了限制权限能力范围的作用.

 

3.范围限制单项权限系统

 

在上面两个权限系统中,权限高的自然能执行权限要求低的操作,这样做权力没有细分,在有些场合并不合理,比如即使是董事长不可直接操作人事部的招聘任务,他只对雇员去留有建议权.对于这样的场合我们需要使用范围限制单项权限系统.它的典型应用如工作流和OA系统。

 

在范围限制单项权限系统中领域对象用户类User的基本属性如下:

    id        // 用户ID

    name      // 用户名

 

领域对象项目类Project的基本属性如下:

    id        // 项目ID

    name      // 项目名

 

领域对象权限类Privilege的基本属性如下:

    id         // 权限ID

    userid     // 持有此权限的用户id

    projectid  // 此权限对应的项目

    abilityid  // 权限控制能力id

 

领域对象权限控制能力类ability的基本属性如下:

    id         // 控制能力ID

    item       // 控制能力子项

 

item的设置示例

item 对应可执行的功能

0 读

1 写

2 查

3 删

 

...

 

通过对权限能力的细分,用户权限的控制粒度更细了,对功能和流程就能有更精确的把握,适用于复杂的场合.

 

以上三种权限系统没有优劣之分只有适用场合的区别,前面的粗略但易于操作,后面的精确但失之烦琐,在现实使用中我们应该根据场合选择合适的权限系统.

分享到:
评论

相关推荐

    基于SpringCloud微服务的服装设计协作系统

    首先归纳了服装设计协作的三个阶段、五种角色、二十五个协作内容和对于每个协作内容的新增、查看、修改、删除四种操作权限控制需求。然后基于 RBAC 权限模型,设计了一种基于角色的可定制访问控制权限模型以满足服装...

    。net图书管理系统设计方案

    在“主目录”选项卡中可以看到,IIS允许有三种信息来源:此计算机上的目录、另一计算机的共享位置和重定向到URL。选择不同的选项,就可以在下面的文本框中输入相应的信息来获取相应的主目录。 图B-4 ...

    本科毕业设计开题报告(房屋出租系统设计与开发V1)_2007

    XXX市房屋出租系统是一款资源管理型的系统,适用于房屋出租情况的管理工作,具有丰富、完整、规范的内容和比较完善的功能。此系统采用C/S结构,可按功能模块进行高度集成的出租系统,考虑到管理者(房东)和客户的各...

    本科毕业设计开题报告(太阳物流公司仓库管理系统的设计与实现V2)

    解决方案:在正式开始毕业设计前去图书馆和网上查阅了仓库管理系统的各种需求分析,并结合学校图书馆的系统和自己的实际制定计划。 五、研究方法 主要采用行动研究法和经验总结法。在行动研究法中,将研究制定的实施...

    基于SpringCloud的人工翻译系统的设计与实现

    内容概要:通过带着...阅读建议:此资源以开发SpringCloud的人工翻译系统学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。

    商业银行信贷管理系统的数据库设计要点(1).doc

    整体规划 首先,在整体上收集和归纳信贷管理系统所涉及的业务对象的主要信息、用途、特点 和关系,然后,结合数据表的功能用途和存取特点进行分类,主要分类如下: (1) 组织人员权限(基础数据):主要是描述银行各组织机构...

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    本科毕业设计开题报告(瑞安公司员工工资管理系统的设计与实现V3)

    三、论文(设计)的基本内容和实施方案 数据来源:将各部门送达的员工工资信息包括基本工资、奖金等作为数据来源,分为新增员工工资数据和老员工每月修改数据。 数据的输入:由工作人员通过新员工本月工资增加和老...

    网络安全复习重点.doc

    21、黑客攻击的流程可归纳为踩点、扫描、查点、获取访问权、权限提升、窃取、掩 盖踪迹、创建后门、拒绝服务攻击。黑客所使用的入侵技术主要包括协议漏洞渗透、 密码分析还原、应用漏洞分析与渗透、社会工程学、...

    网络安全复习重点(1).doc

    21、黑客攻击的流程可归纳为踩点、扫描、查点、获取访问权、权限提升、窃取、掩 盖踪迹、创建后门、拒绝服务攻击。黑客所使用的入侵技术主要包括协议漏洞渗透、 密码分析还原、应用漏洞分析与渗透、社会工程学、...

    毕业设计(带论文)—试卷生成系统.rar

    3、 设计方案:试卷自动生成系统要具有手工生成和自动生成的功能;对用户的管理也应当具有增加、删除用户等功能;对生成的试卷如有不满意的,可对其进行修改;还可对题库进行增、删、改等功能,使题库不断的完善。 六...

    网上会展的未来发展趋势

    以及能保证线速网络流量监控与安全的sFlow(RFC3176)技术,从而构成了从边缘到核心完整的解决方案,完全满足了会展中心对于网络设计在高性能,数据、语音和视频合一,安全性,可扩展性及易于管理等方面的要求。...

    asp学习相关资料大全

    (2)因为ASP采用script语言(VBscript和Jscript)就可以轻松编写程序,因此这就大节省了网络设计人员又得重新学习一种新语言的时间。而且编写ASP无须手工compile编译或链接程序,可在服务器端直接执行,这无疑是...

    平台级SAAS架构的基础:统一身份管理系统

    整体来说,不管是4A还是IAM还是未来可能的其他技术方案,都可以归纳为『统一身份治理』的范畴。 统一身份管理系统(简称UIMS)可以认是多租户软件架构的升级版,通常是整个平台帐号和权限管控的基

    fourinone-3.04.25

    于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。...

    Fourinone分布式并行计算四合一框架

    于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。...

    Fourinone分布式计算框架

    于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。...

Global site tag (gtag.js) - Google Analytics