`
anmo_china
  • 浏览: 16236 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
最近访客 更多访客>>
社区版块
存档分类
最新评论

三种权限设计方案

阅读更多
三种权限设计方案的归纳和比较

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

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 删

...

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

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

相关推荐

    应用程序权限设计-权限的控制程度不同的设计方案

    本文将深入探讨六种常见的权限设计方案及其优缺点。 #### 二、基于角色的权限设计 **概念**:基于角色的权限设计(Role-Based Access Control, RBAC)是一种常见的权限管理方法,它通过赋予用户不同的角色来控制其...

    RBAC用户角色权限设计方案

    ### RBAC用户角色权限设计方案详解 #### 一、引言 在现代软件系统尤其是企业级应用中,用户角色权限管理是非常重要的一部分。合理的权限管理不仅可以提高系统的安全性,还能提升用户体验,使得不同用户能够根据自己...

    用户认证管理权限设计方案

    ### 用户认证管理权限设计方案 #### 一、设计思路与架构 **用户(User)**:系统中的基本操作单位,每个用户拥有唯一的标识(UserID)和登录信息(如用户名UserName、密码UserPwd),并根据其角色(Role)获取特定...

    角色权限设计方案.pdf

    综上所述,角色权限设计方案的核心是RBAC模型,通过角色作为权限的桥梁,简化了用户权限的管理和分配。用户组的引入进一步优化了这一过程,提供了更灵活的权限控制策略,尤其在处理大规模用户和复杂权限需求时显得尤...

    角色权限管理设计方案

    本文将深入探讨“角色权限管理设计方案”,基于提供的描述和标签,我们将详细阐述这一主题,以便理解如何有效地设计和实现一个权限控制系统。 首先,我们要明白权限管理的核心目标是确保用户只能访问他们被授权的...

    OA系统权限管理设计方案

    ### OA系统权限管理设计方案 #### 一、引言 随着企业规模的不断扩大和技术的发展,办公自动化(OA)系统已经成为提高工作效率、规范管理流程的重要工具。权限管理作为OA系统中的核心功能之一,对于确保数据安全、...

    涉密系统设计解决方案 三员管理.docx

    涉密系统设计解决方案的核心在于"三员管理",即系统管理员、安全保密管理员和安全审计员,这三类角色在确保信息安全和保密性方面扮演着至关重要的角色。 系统管理员是涉密系统的守护者,主要任务包括系统的日常运行...

    系统框架权限设计杂谈论文

    权限设计通常涉及到角色(Role)、资源(Resource)和操作(Action)三个要素。角色代表了一组用户的集合,具有相同权限的用户可以被归为同一角色;资源是系统中的对象,如文件、数据库记录、菜单项等,需要被保护的...

    权限管理设计方案.doc

    在本文中,我们将深入探讨一种权限管理设计方案,该方案旨在实现高度可扩展性和灵活性,以满足各种业务需求。 首先,我们要明确权限管理中的三个核心概念:用户(User)、角色(Role)和权限(Permission)。用户是系统的...

    一个通用的权限管理模型的设计方案

    用户组是将用户分组管理的一种方式,方便系统管理员进行权限分配和管理。 四、模型的扩展 通用权限管理模型在RBAC的基础上进行了扩展,通过引入资源、操作类型、功能等实体,使得功能权限更加丰富。模型还增加了...

    通用数据权限管理系统设计

    ### 通用数据权限管理系统设计详解 #### 一、引言 在现代企业的信息化管理中,权限管理成为确保数据安全和合理使用的关键环节。一个高效、灵活的通用数据权限管理系统不仅能够提升企业的运营效率,还能更好地保护...

    权限设计原理

    权限设计是一项复杂的任务,但本质上可以简化为一种逻辑判断:“谁(Who)对什么(What)进行了怎样的(How)操作”。权限设计的目标是在项目的实际需求和架构之间找到平衡点,确保权限系统的维护性、灵活性以及完整...

    数据库中用户权限设计

    ### 数据库中用户权限设计详解 #### 一、引言 在现代企业级应用系统中,尤其是基于浏览器/服务器(B/S)架构的应用系统,确保数据的安全性和完整性至关重要。一个有效的用户权限管理系统不仅可以防止未授权访问,...

    java web 系统权限设计 源码

    本资源提供的"java web 系统权限设计 源码"包含了完整的权限管理模型和设计方案,对于开发者来说,这是一个宝贵的参考资料。下面我们将深入探讨权限管理系统的几个核心概念和实现方式。 1. **权限管理基础** 权限...

    软件设计方案模板样本.doc

    本设计方案主要包括三个模块:顾客及角色权限设计、功能模块设计和系统逻辑控制。 4.1 顾客及角色权限设计 在CRM系统中,顾客模块的建立是基于域顾客的建立。同时,配送中心专人登录CRM系统密码为ERP密码为域密码。...

Global site tag (gtag.js) - Google Analytics