1.基于 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. 常见模块设计--数据字典

    常见模块设计--数据字典 DROP TABLE IF EXISTS `dict_data`; CREATE TABLE `dict_data` (`id` int(11) NOT NULL AUTO_ ...

  2. 如何设计权限管理模块

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:不哼不哈 cnblogs.com/myindex/p/9116177.html 我们比较常 ...

  3. 通俗易懂权限管理模块设计-Java

    最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块.权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问.其实Java中已经有很成熟的权限管理框架,例如 Shi ...

  4. Vuex前端saas人力资源中台管理项目第五天 权限管理和图表设计

    权限设计-RBAC的权限设计思想 首先,我们先了解下什么是传统的权限设计 从上面的图中,我们发现,传统的权限设计是对每个人进行单独的权限设置,但这种方式已经不适合目前企业的高效管控权限的发展需求,因为 ...

  5. RBAC权限管理设计思想

    RBAC权限管理设计 一.概述 二.权限模型 三.RBAC模型 什么是RBAC模型 基本模型RBAC0 角色分层模型RBAC1 角色限制模型RBAC2 统一模型RBAC3 基于RBAC的延展--用户组 ...

  6. 若依(RuoYi )权限管理设计

    前言 若依权限管理包含两个部分:菜单权限 和 数据权限.菜单权限控制着我们可以执行哪些操作.数据权限控制着我们可以看到哪些数据. 菜单是一个概括性名称,可以细分为目录.菜单和按钮,以若依自身为例: 目 ...

  7. vue权限管理的设计与实现

    一.什么是权限管理 在web应用中权限管理,一般指根据系统设置和分配给某个角色的应用权限,用户可以访问而且只能访问自己被分配的资源.权限管理几乎出现在任何系统里面,在web后台管理系统里面尤为常见. ...

  8. 深入探讨大数据权限管理方案-从哲学到技术

    大数据平台的权限管理工作,听起来不就是用户和密码管理这点事么?找个数据库存储一下两者的映射关系,然后再找个地方记录一下每个人可以做什么事,最后在需要的时候验证一下就好了,如果不讨论各种加解密原理和算法 ...

  9. java 接口权限控制_手把手教你搞定权限管理,结合Spring Security实现接口的动态权限控制!...

    SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/- 摘要 权限控管理作为后台管理系统中必要的功能,mall项目中结合Spring Secu ...

最新文章

  1. 【DB】几种ETL模式
  2. sqlserver中查找存储过程中的关键字方法之二
  3. leetcode-Combination Sum-39
  4. EasyTrack项目管理软件的四大版本和相关组件介绍
  5. Web前端笔记-vue cli中使用echarts加载geo地图
  6. CentOS6.X安装QQ2012
  7. linux c 日志写入文件,linux下C语言实现写日志功能
  8. 在VS中查看Halcon变量
  9. Navicat连接本地数据库10038,1251
  10. 使用java制作一个个税计算器
  11. 蓝桥杯,基础练习 Fibonacci数列(斐波那契数列) C++
  12. vue瀑布流插件vue-waterfall-easy 2.x
  13. 计算机制图员主要学什么,制图员
  14. python word文档文字批量替换与删除
  15. 旋转正方体加径向渐变
  16. java发邮件(简单)
  17. 云队友丨五大思维模式,决定你的人生能走多远
  18. 健身行业大洗牌 Keep还会有未来吗?
  19. 奇异量子物理系统:它既在“绝对零度”之下,又在“绝对高温”之上
  20. python调用perl 乱码 ‘perl‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

热门文章

  1. 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度
  2. 联想服务器TS130主板芯片组,【ThinkServer TS130参数】ThinkServer TS130系列服务器参数-ZOL中关村在线...
  3. 谷歌学术 rss_如何自动将博客RSS供稿发布到Google plus页面?
  4. Oracle中if...then的使用
  5. S5PV210开发板用汇编设置栈和调用C语言
  6. 亚马逊后台操作不容措施旺季~~~~~~
  7. 震撼!世界从10亿光年到0.1飞米!
  8. C语言过时了?扯淡!
  9. Java基础 DAY15
  10. 利用switch实现春夏秋冬