很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容。
  在此以权限管理的使用场景来说明一下完整的权限管理内容。
 
  一是鉴权管理,即权限判断逻辑。
 
  1. 最基本的权限管理就是菜单管理,用户没有权限的功能模块在菜单节点上是不显示的。(很多人以为这就是权限管理!)
     示例:普通业务人员登录系统后,是看不到【用户管理】菜单的。
     
  2. 功能权限管理,B/S系统的功能体现为URL,所以功能权限管理主要是针对URL访问的管理。(很多人都不清楚权限管理的对象是什么?)
     示例:
     经过授权,部门经理可以查看【用户管理】菜单,并查看部门用户信息,但权限设计要求,该部门经理没有添加用户的权限。
     所以在访问【添加用户】的功能(URL)时,应该有没有授权的提示信息。
     同时在【用户管理】页面上,【添加用户】的按钮应该灰色显示,不能点击。
     
  3. 行级权限管理
     示例:
     论坛管理员,权限设计要求 A能管理论坛 【新闻版块】,不能管理论坛 【技术交流】
     此时的权限设计就应该根据论坛的相应ID来判断权限信息。
     
  4. 列级权限管理
     示例:
     业务权限设计要求,除销售人员以外,其他用户不能看到客户的联系方式信息。
     此时的权限设计要判断相应的字段(列)是否可以显示。
     
  5. 组织机构/部门级数据权限管理
     示例:
     业务权限设计要求,销售一部的人员只能看到本部门的销售订单,销售二部的人员只能看到本部门的销售订单,但销售经理可以同时看到
     销售一部和销售二部的销售订单。
     此时的权限设计就要根据销售订单数据本身的部门属性来做判断
     
  6. 范围型业务数据权限管理
     示例:
     大卖场销售人员在下销售订单时,要选择相应的产品所在仓库信息。
     业务权限设计要求,【国美】的销售人员在选择仓库的下拉列表中不能看到【广州仓库】,而【大中电器】的销售人员在选择仓库的下拉列表中不能看到【北京顺义仓库】
     
  二是授权管理,即权限分配过程。以上的权限管理内容都要通过系统的授权功能来分配给具体的用户,授权功能应该足够灵活。
 
  1. 直接对用户授权,直接分配到用户的权限具有最优先级别。
 
  2. 对用户所属岗位授权,用户所属岗位信息可以看作是一个分组,和角色的作用一样,但是每个用户只能关联一个岗位信息。
 
  3. 对用户所属角色授权,用户所属角色信息可以看作是一个权限分组,每个用户可以关联多个角色。
 
  4. 角色直接关联具体的功能权限(URL),也可以关联负权限,即此角色关联的权限不能使用负权限功能。负权限具有优先级别。
 
  5. 分级授权,系统管理员可以将自己拥有的权限信息授权给其他用户。即可以设置分级管理员和超级管理员。
 
  以上才是一个完整的权限管理系统,你有这样的完整权限的设计吗?

基于RBAC模式的权限管理系统设计概要的更多相关文章

  1. EOSS V3.0 企业运营支撑系统(基于RBAC原理的权限管理)

    一:EOSS 功能介绍 其于用户,角色,权限,菜单的一套“简约实用”的权限管理系统,可在其基础之上,快速进行二次开发. 一个用户可以选择多个角色. 一个角色可以选择多个权限. 一个菜单可以有无限级子菜 ...

  2. 《基于B_S模式的教务管理系统设计与实现》论文笔记(十九)

    标题:广州医科大学考务管理系统的研究与分析 一.基本信息 时间:2012 来源:南通大学杏林学院 关键词:: 考务管理:网络考试:数据库系统 二.研究内容 1.重修补考报名考务管理系统采用的技术: 重 ...

  3. EOSS V3.0.2 企业运营支撑系统(基于RBAC原理的权限管理)

    下载地址:https://github.com/jelly-liu/EOSS 一:EOSS 功能介绍 其于用户,角色,权限,资源(即菜单)的一套"简约有用"的权限管理系统,可在其基 ...

  4. [Django]用户权限学习系列之设计自有权限管理系统设计思路

    若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...

  5. 基于EasyUI Treegrid的权限管理资源列表

    1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...

  6. Jenkins配置基于角色的项目权限管理--转

    本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Str ...

  7. Jenkins配置基于角色的项目权限管理

    转自: http://www.cnblogs.com/gao241/archive/2013/03/20/2971416.html, 版权归原作者. 本文将介绍如何配置jenkins,使其可以支持基于 ...

  8. 文献综述六:基于JS 技术的电子商品管理系统设计及实现

    一.基本信息 标题:基于JS 技术的电子商品管理系统设计及实现 时间:2017 出版源:无线互联科技 文件分类:js技术的研究 二.研究背景 主要对Js下电商管理系统的设计及实现进行了探讨,利用软件工 ...

  9. 文献综述一:基于UML技术的商品管理系统设计与实现

    一.基本信息 标题:基于UML技术的商品管理系统设计与实现 时间:2018 出版源:福建电脑 文件分类:uml技术的研究 二.研究背景 使用 UML 技术对商品管理系统进行了分析与研究,使用户对商品信 ...

随机推荐

  1. golang文件处理函数openfile与linux系统的文件函数的耦合

    golang运行最理想的环境是linux系统中,编译速度和执行速度都比较快,本文是关于golang中的文件操作函数 在golang标准库中os包提供了不依赖平台的借口,但是使用的风格是unix风格的. ...

  2. root@localhost

    root代表当前的用户 也就是说你使用root的帐号登录的localhost是系统的名字 没有设置系统名字的时候默认名称是localhost/ 代表你当前所处的目录位置 你当前在根目录下# 是用户提示 ...

  3. 【算法】关于图论中的最小生成树(Minimum Spanning Tree)详解

    本节纲要 什么是图(network) 什么是最小生成树 (minimum spanning tree) 最小生成树的算法 什么是图(network)? 这里的图当然不是我们日常说的图片或者地图.通常情 ...

  4. SQL Server为啥使用了这么多内存?

    原文地址:http://support.microsoft.com/gp/anxin_techtip6/zh-cn SQL Server为啥使用了这么多内存? SQL Server的用户,常常会发现S ...

  5. 安装python发行版本,并用conda来管理Environments,Python,packages

    简介:anaconda指的是一个开源的python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB ...

  6. 如何在Qt Creator 创建一个.pri文件

    如何在Qt Creator 创建一个.pri文件 2013年10月09日 ⁄ 综合 ⁄ 共 254字 ⁄ 字号 小 中 大 ⁄ 评论关闭   这个问题很少人写,因为比较简单,但是让却让我花了好大功夫才 ...

  7. LeetCode109. 有序链表转换二叉搜索树

    109. 有序链表转换二叉搜索树 问题描述 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超 ...

  8. 109th LeetCode Weekly Contest Knight Dialer

    A chess knight can move as indicated in the chess diagram below:  .            This time, we place o ...

  9. HDU - 6183 动态开点线段树 || 令人绝望的线段树

    一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦 是男人就上51棵..等等空间爆几倍了 动态开点!51棵线段树用全局节点变量控制,有点像主席树 清空工作很简单,把51个树根清掉然后回收 ...

  10. Autofac构建

    1.初始化 using System.Reflection; using System.Web; using System.Web.Mvc; using System.Configuration; u ...