基于 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. RBAC用户角色权限设计方案

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

  8. 权限管理系统如何分别实现对用户和角色的授权

    目前,大多数权限系统,都是基于RBAC的理念来设计的,关于RBAC,摘抄一下百度百科的解释: 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而 得到这些角色的权限.这就极大地简化了权限的管 ...

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

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

  10. RBAC用户角色权限设计方案(转)

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

最新文章

  1. JAVA上传服务器端代码
  2. Spring Cloud Netflix Zuul中的速率限制
  3. [Security] Automatically adding CSRF tokens to ajax calls when using jQuery--转
  4. 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了
  5. Linux文件锁学习-flock, lockf, fcntl
  6. JS解密入门——有道翻译
  7. 半年工作经验今日头条和美团面试题面经分享
  8. JDBC秒变C3P0连接池——再加连接解耦
  9. win10 漏洞 蓝屏代码
  10. Node.js简介与架构
  11. HDFView 3.1.2win10百度云资源
  12. pix4d正射修补水面_大疆精灵4RTK航线规划技巧以及在CC、Pix4D和Photoscan数据处理教程汇总...
  13. 关于网络促销活动对大学生购物的影响的调研报告
  14. can滤波 dsp_CAN dsp 28335 CAN通信使用例程,已测试,可以正常 ,欢迎交流学习 DSP program 267万源代码下载- www.pudn.com...
  15. 海康威视SDK告警上传功能整合到springboot(一)
  16. 使用WireShark查看TCP的三次握手
  17. PHP SDK for sinaweibo
  18. css绝对定位有什么用,css中的绝对定位是什么意思
  19. kademlia算法学习(区块链P2P网络设计)
  20. SCI论文使用python画图总结

热门文章

  1. 我的阿里Offer之路(一):不忘初心,重拾Java
  2. 中国联通勃勃雄心再建47万基站,可是钱从何来?
  3. springboot+app基于安卓的移动数字图书馆的设计与实现毕业设计源码030911
  4. vivo怎么调时间_手表怎么调时间?日期时间怎么调,电子手表
  5. macOS 12 Monterey 苹果最新系统v12.4正式版
  6. Hadoop的NameNode
  7. 图书分类怎么写用php,PHP开发简单图书后台管理系统实现图书统计
  8. 如何用浏览器进行网站源代码的静态分析—赏金猎人入门手册
  9. springboot整合redis实现HyperLogLog统计文章浏览量使用过期策略完成数据库同步
  10. 今天路上和大众途观L飙车了100米