原网址:https://blog.csdn.net/qq_30519491/article/details/80941201

https://blog.csdn.net/llhwin2010/article/details/8647174

1 一个用户只属于一个用户组
2 一个角色包含多个权限,
3 一个用户自身(非继承)可以有多个角色,也可以有多个权限
4 一个用户组可以有多个角色,也可以有多个权限
5 一个权限也可以属于多个角色。

6 一个用户的角色和权限来自两部分,一部分继承于所有父用户组的角色和权限,另一部分来自特别为其分配的角色和权限
7 一个用户组可以排除(exclude)一个角色, 而一旦在其子用户组或者在某个用户身上加入(include)这个角色, 那这个用户或者用户组将重拾这个角色
8 一个用户或用户组可以拒绝(disallow)一个权限, 一旦拒绝以后, 不管在什么地方再允许(allow)这个权限都于事无补
9 管理员可以做任何事情, 不受任何约束

10 用户组是用户的集合,角色是权限的集合

==========================================================================================

基于 RBAC(Role-based Access Control)权限访问控制。也就是说一个用户可以有多个角色,一个角色可以有多个权限,通过将角色和权限分离开来提高设计的可扩展性,通常一个用户有多个角色,一个角色也会属于多个用户(多对多),一个角色有多个权限,一个权限也会属于多个角色(多对多)。

2.最简单版本

假设:我们拿到一个用户对象,

可以通过:用户id –>角色id–>角色名称(什么角色)–>权限id –> 权限标识 –>获取权限。最终获取权限获取角色信息。

角色:可以简单理解为许多权限的集合。比如二级管理员,三级管理员。

3.用户组模式

如果用户数量比较庞大,可以加入用户组模式。需要给用户分组,每个用户组内有多个用户,可以给用户授权外,也可以给用户组授权。最终用户拥有的所有权限 = 用户个人拥有的权限+该用户所在用户组拥有的权限。(这个设计类似 svn 中的用户权限,比如,将一个svn用户加入到 group中,然后设置group的权限,以后加入更多的用户,就不用再一一设置用户的权限了。)

4.权限分类

大部分是针对功能模块,比如对信息记录的增删改(信息状态修改,文件的删除修改等),菜单的访问,输入框,按钮的可见性,是否可以新增下级管理员等。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。

5.完整版

请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。

优点:(1)不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。

(2)方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的关联表“权限XX关联表”,并确定这类权限的权限类型字符串。

这里要注意的是,权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操作等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。

用户,用户组,角色,权限 理解相关推荐

  1. 单用户多角色权限的MSSQL实现

    本文转载:http://www.cnblogs.com/tonyqus/archive/2005/08/22/218271.html 数据表设计 分为用户表.角色表.角色拥有权限表.权限表.用户所属角 ...

  2. 基于用户组织角色权限和资源的五要素

     一.简 介 在进行本单位办公自动化系统需求分析时创建了基于用户.组织的部门结构.实际工作角色.权限种类.资源树的五要素全排列需求分析方法,并进行了软件的功能需求分析,以及授权本身的管理,该方法是 ...

  3. 用户用户组及权限管理

    用户 新建用户 useradd -c -d -g -G -s -u 修改用户 删除用户 用户组 新建用户组 修改用户组 删除用户组 转载于:https://www.cnblogs.com/zking9 ...

  4. linux用户及用户权限管理,Linux用户用户组及权限管理

    Linux安全上下文: 运行中的程序:进程 进程所能够访问资源的权限取决于进程的运行者身份 涉及的配置文件 /etc/passwd:保存用户信息 whatis passwd sslpasswd (1s ...

  5. Oracle数据库如何查看当前用户角色权限及默认表空间

    http://database.51cto.com/art/201108/280474.htm 在Oracle数据库操作中,有时候我们需要查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间 ...

  6. html 权限设定页面,角色权限设置(总管理员权限).html

     角色权限设置(总管理员权限) $axure.utils.getTransparentGifPath = function() { return 'resources/images/transpar ...

  7. 用户角色权限的简单理解

    用户角色权限,它们之间的关系是用户依赖于角色,角色依赖于权限.权限四个属性:增.删.改.查.角色不仅依赖于权限,还依赖于目标,也就是数据源,简单理解是这个角色可以访问哪些资源. 用户权限大致就分三个级 ...

  8. RBAC用户角色权限设计方案

    RBAC用户角色权限设计方案 转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html RBAC(Role-Based Acces ...

  9. java用户角色权限管理 只显示姓_扩展RBAC用户角色权限设计方案

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...

最新文章

  1. java 文件写入 读取_JAVA文件的两种读取方法和三种写入方法
  2. location.href请求设置头部header_Nginx 是如何处理 HTTP 头部的?
  3. OVS 各功能调用过程(三十一)
  4. 多任务学习有用的资料
  5. 转:Java 7 种阻塞队列详解
  6. 荣耀6plus+android5.1,荣耀66Plus EMUI3.0开发版5.5.1版本发布说明
  7. 《深入浅出vue.js》阅读笔记之数组变化侦测
  8. java实验报告合肥工业大学_合肥工业大学数据结构上机实验代码与实验报告(全)github地址...
  9. python程序设计教程胡建华_Python程序设计教程
  10. ACR2010_常规医疗环境下TNF拮抗剂对RA骨侵蚀的修复作用
  11. 使用大数据分析需避免哪些错误
  12. 32bit还是64bit
  13. IDEA Maven Mybatis generator 自动生成代码
  14. Json在线格式化校验 bejson.com
  15. 计算机更新bios,小编教你如何升级bios
  16. python 绘图及可视化
  17. C# WinForm GUI之示例
  18. pe怎么看计算机mac地址,Win10查看本机mac地址方法|电脑mac地址怎么查
  19. Web项目中手机注册短信验证码实现的全流程及代码
  20. php cms 2017 排名,cms系统排行_PHP CMS系统排行榜

热门文章

  1. CPU、GPU、NPU的区别
  2. 【实用工具】Windows上安装并使用压测神器 SuperBenchmarker
  3. Qt 内嵌外部exe程序 利用Windows API(2)
  4. 【leetcode】287 寻找重复数(查找)
  5. Java序列化机制——protoStuff
  6. 总合(。。。。。。)
  7. JAVA判断两个时间戳,相隔多少分钟
  8. 2021年低压电工考试题及低压电工最新解析
  9. .devos勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  10. Quartus Prime Lite Edition 使用教程(创建项目与仿真)V