关键词:
权限设计系统——RBAC
权限系统是针对与用户设计,不同的用户进入拥有不同的身份,而不同的身份则会导致他们能够使用到系统中的功能出现不同。这些功能即需要前端展示时的控制,也需要后端权限的校验。
1. RBAC
RBAC(Role-Based Access Control)是一套很成熟的权限设计模型。是一个基于角色所控制的系统,所谓角色,就是用户的身份,整个模型围绕着角色设计。
一种常见的权限设计模型如下图:
将用户和所对应的权限直接关联,这种将用户和权限直接关联的方式看起来很直接。一个用户可以拥有多个权限,而这些权限的信息都储存在用户权限表中,在小规模系统,或者说用户较少时比较便于管理,逐个用户授权,人说较多时,就显得有些麻烦,大部分的用户可能都是拥有者同样的权限,重复性极高。这个时候既可以引入角色。
每一个普通员工有用的权限一定是一样的,部门管理者在权限上可能存在差异,而这一部分人往往是少数。设计以角色为核心的权限系统,可以减少数据库开销的同时,减少使用者的重复工作,这对于使用者是很友好的。RBAC的设计模型如下图:
2. 数据库设计
2.1 部门表(sys_dept,非必须)
部门表主要是用来存放部门的基本信息。
字段 | 备注 |
---|---|
dept_id | 部门编号 |
dept_name | 部门名称 |
pid | 部门父id |
2.2 用户表(sys_user)
用户表主要用来存放用户的基本信息。
字段 | 备注 |
---|---|
user_id | 用户编号 |
username | 用户名 |
password | 密码 |
dept_id | 所在部门编号 |
2.3 角色表(sys_role)
角色表主要用来存放角色的基本信息。
字段 | 备注 |
---|---|
role_id | 角色编号 |
role_name | 角色名称 |
2.4 权限表(sys_permission)
权限表是用来存系统中包含的权限信息的。
字段 | 备注 |
---|---|
per_id | 权限编号 |
per_name | 权限名称 |
per_nation | 权限的标识符 |
2.5 用户角色表(sys_user_role)
用户角色表是用来存放用户和角色的对应关系,理论上来说,用户和角色应该是一对一的,但是,在实际的生产环境中,一个用户往往有多个角色,即兼任。
字段 | 备注 |
---|---|
user_id | 用户编号 |
role_id | 角色编号 |
2.6 角色权限表(sys_role_permission)
角色权限表是用来存放角色和权限的对应关系,该表中,角色和权限应该是一对多的关系。
字段 | 备注 |
---|---|
role_id | 角色编号 |
per_id | 权限编号 |
3. 拓展
当然,一个权限系统一定不能只有已上几张表,为了实现菜单的动态化,需要补充三张表,补充后的结构如下:
3.1 菜单表
菜单表是用来存放菜单的基本信息。
字段 | 备注 |
---|---|
menu_id | 菜单编号 |
menu_name | 菜单名称 |
url | 菜单所指向的地址 |
type | 菜单的类型(包括目录、菜单以及按钮) |
icon | 菜单的图表 |
pid | 菜单的父id |
3.2 角色菜单表
角色菜单表是用来存放角色所拥有的的菜单。
字段 | 备注 |
---|---|
role_id | 角色编号 |
menu_id | 菜单编号 |
3.3 菜单权限表
菜单权限表用来存放菜单的权限。为了能够控制菜单的动态显示、访问,所以给每一个菜单也设计了权限,这样看起来有些臃肿,一种简化方式是将菜单权限表省略,然后在菜单表中添加 permission 字段,代表改菜单所需要的的权限。
字段 | 备注 |
---|---|
menu_id | 菜单编号 |
per_id | 权限编号 |
转:rbac如何设计一个权限系统
前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块,... 查看详情
b端产品之权限设计(rbac权限模型)
...用的软件我们通常称其为B端管理系统,而在B端系统中“权限管理”是必不可少的功能,不同的系统中权限的应用复杂程度不一样,都是根据实际产品以及需求情况而设置合理的权限。而我们现在对于权限的设置基本上都是建立... 查看详情
26生鲜电商平台-rbac系统权限的设计与架构
...以及对需求的分析,我们得知通常的一个中小型系统对于权限系统所需实现的功能以及非功能性的需求,在下面我们将根据需求从技术角度上分析实现的策略以及基于目前两种比较流行的权限设计思想来讨论关于权限系统的实现... 查看详情
rbac用户角色权限设计方案转载
...ccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,... 查看详情
权限系统与rbac模型概述[绝对经典]
0.前言一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠... 查看详情
用户权限管理数据库设计(rbac)
...ccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与... 查看详情
基于rbac权限控制模型的管理系统的设计与实现(代码片段)
文章目录一、RBAC权限设计1.1模型概述1.2模型分类二、基于RBAC的后台管理系统2.1项目概述2.2技术选型2.3内部处理流程2.4功能模块展示2.5权限控制展示2.6下载说明一、RBAC权限设计1.1模型概述 基于角色的访问控制RBAC,是实施... 查看详情
基于rbac权限控制模型的管理系统的设计与实现(代码片段)
文章目录一、RBAC权限设计1.1模型概述1.2模型分类二、基于RBAC的后台管理系统2.1项目概述2.2技术选型2.3内部处理流程2.4功能模块展示2.5权限控制展示2.6下载说明一、RBAC权限设计1.1模型概述 基于角色的访问控制RBAC,是实施... 查看详情
rbac用户权限管理数据库设计
http://minjiechenjava.iteye.com/blog/1759482RBAC用户权限管理数据库设计 博客分类: RBAC权限设计 RBAC RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每... 查看详情
基于角色权限管理:rbac设计分析以及具体细节(代码片段)
权限管理---设计分析以及具体细节说起权限我们大家都知道,不一样的角色会有不一样的权限。比如就像学生管理系统一样,管理员,老师,学生之间的权限都是不一样的,那么展示的页面也是不一样的。所以,我们现在来... 查看详情
rbac模型设计
...什么是RBAC模型RBAC(Role-BasedAccessControl)即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。二、RBAC模型的分类RBAC模型可以分为:RBAC0、RBAC1、RBAC2、RBAC3四种。1、RBAC0模型最简单的用户、角色... 查看详情
权限系统设计
权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。目前在公司负... 查看详情
最全的权限系统设计
史上最全的权限系统设计权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄... 查看详情
数据权限就该这么设计,yyyds!(代码片段)
...部分数据。控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC,但是控制用户只能访问某部分资源(即我们常说的数据权限)使用RBAC模型是不够的,本文我们尝试在RBAC模型的基础上融入数据权限的... 查看详情
公司新来了一个同事,把权限系统设计的炉火纯青!
...____来源:segmentfault.com/a/1190000023052493思维导图如下RBAC权限分析RBAC全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思... 查看详情
公司新来了一个同事,把权限系统设计的炉火纯青!
...____来源:segmentfault.com/a/1190000023052493思维导图如下RBAC权限分析RBAC全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思... 查看详情
公司新来了一个同事,把权限系统设计的炉火纯青!
...____来源:segmentfault.com/a/1190000023052493思维导图如下RBAC权限分析RBAC全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思... 查看详情
公司新来了一个同事,把权限系统设计的炉火纯青!
...____来源:segmentfault.com/a/1190000023052493思维导图如下RBAC权限分析RBAC全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思... 查看详情