基于角色的访问控制 (RBAC)权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
在系统访问中,最终判断的是当前用户拥有哪些权限,以使用相关的权限进行业务处理。
在RBAC中,共有用户、部门、权限、角色四个概念,部门是用户的集合,角色是权限的集合;用户可以拥有不同的权限和角色,部门也可以拥有不同的权限和角色;权限拥有上下级关系,并且在系统中可以有业务权限与数据权限两类;部门拥有上下级关系,此设计方式没有对权限进行继承;部门和用户是一对多的关系,一个部门中可以有多个用户,一个用户只允许属于一个部门。
数据表结构如下:
1.用户表
|
表名:t_user |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
user_id |
varchar(32) |
主键 |
必填 |
主键 |
|
login_name |
varchar(255) |
必填 |
登录用户名 |
|
|
login_pass |
varchar(255) |
必填 |
密码 |
|
|
org_id |
varchar(32) |
外键 |
必填 |
所属机构ID |
|
user_name |
varchar(255) |
必填 |
真实姓名 |
|
|
user_phone |
varchar(255) |
电话号码 |
||
|
user_email |
varchar(255) |
|
||
|
create_date |
varchar(10) |
必填 |
创建日期 |
|
|
create_time |
varchar(8) |
必填 |
创建时间 |
|
|
create_user |
varchar(32) |
外键 |
必填 |
创建人 |
2.机构表
|
表名:t_organization |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
org_id |
varchar(32) |
主键 |
必填 |
主键 |
|
org_name |
varchar(255) |
必填 |
机构名称 |
|
|
org_code |
varchar(255) |
机构编码 |
||
|
org_header |
varchar(255) |
机构负责人 |
||
|
parent_id |
varchar(32) |
表内外键 |
必填 |
上级机构ID,根机构的ID为空 |
|
create_date |
varchar(10) |
必填 |
创建日期 |
|
|
create_time |
varchar(8) |
必填 |
创建时间 |
|
|
create_user |
varchar(32) |
外键 |
必填 |
创建人 |
3.权限表
|
表名:t_right |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
right_id |
varchar(32) |
主键 |
必填 |
主键 |
|
right_name |
varchar(255) |
必填 |
权限名称 |
|
|
right_code |
varchar(255) |
权限编码 |
||
|
parent_id |
varchar(32) |
表内外键 |
必填 |
父权限ID, 根权限的ID为空 |
|
create_date |
varchar(10) |
必填 |
创建日期 |
|
|
create_time |
varchar(8) |
必填 |
创建时间 |
|
|
create_user |
varchar(32) |
外键 |
必填 |
创建人 |
4.用户权限关系表
|
表名:t_user_right |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
ur_id |
varchar(32) |
主键 |
必填 |
主键 |
|
user_id |
varchar(32) |
外键 |
必填 |
用户ID |
|
right_id |
varchar(32) |
外键 |
必填 |
权限ID |
5.机构权限关系表
|
表名:t_org_rigth |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
or_id |
varchar(32) |
主键 |
必填 |
主键 |
|
org_id |
varchar(32) |
外键 |
必填 |
机构ID |
|
right_id |
varchar(32) |
外键 |
必填 |
权限ID |
6.角色表
|
表名:t_role |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
role_id |
varchar(32) |
主键 |
必填 |
主键 |
|
role_name |
varchar(255) |
必填 |
角色名称 |
|
|
create_date |
varchar(10) |
必填 |
创建日期 |
|
|
create_time |
varchar(8) |
必填 |
创建时间 |
|
|
create_user |
varchar(32) |
外键 |
必填 |
创建人 |
7.用户角色关系表
|
表名:t_user_role |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
ur_id |
varchar(32) |
主键 |
必填 |
主键 |
|
user_id |
varchar(32) |
外键 |
必填 |
用户ID |
|
role_id |
varchar(32) |
外键 |
必填 |
角色ID |
8.机构角色关系表
|
表名:t_org_role |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
or_id |
varchar(32) |
主键 |
必填 |
主键 |
|
org_id |
varchar(32) |
外键 |
必填 |
机构ID |
|
role_id |
varchar(32) |
外键 |
必填 |
角色ID |
9.角色权限关系表
|
表名:t_role_right |
||||
|
字段名称 |
字段类型 |
主外键 |
是否必填 |
备注 |
|
rr_id |
varchar(32) |
主键 |
必填 |
主键 |
|
role_id |
varchar(32) |
外键 |
必填 |
角色ID |
|
right_id |
varchar(32) |
外键 |
必填 |
权限ID |
基于角色的访问控制 (RBAC)权限管理的更多相关文章
- [PHP]基于角色的访问控制RBAC
---------------------------------------------------------------------------------------------------- ...
- 移动服务和 Azure Active Directory 中基于角色的访问控制
编辑人员注释:本文章由 Matthew Henderson撰写 去年 11月,我们发布了 Azure Active Directory (AAD) 预览版作为移动服务身份提供程序.此举旨在为企业开 ...
- Azure 门户中基于角色的访问控制入门
面向安全的公司应侧重于向员工提供他们所需的确切权限. 权限过多,可能会向攻击者公开帐户. 权限太少意味着员工无法有效地完成其工作. Azure 基于角色的访问控制 (RBAC) 可通过为 Azure ...
- ThinkPHP中RBAC权限管理的简单应用
RBAC英文全称(Role-Based Access Controller)即基于角色的权限访问控制,简单来讲,一个用户可以拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授 ...
- PHP RBAC权限管理 基于角色的访问控制演示
RBAC rbac:Role Based Access Controll,基于角色的访问控制. 今天理一理RBAC,话不多说,直接切入主题 功能需求: 权限管理(无限极) 角色管理(可以分配权限) 管 ...
- RBAC(基于角色的访问控制)用户权限管理数据库设计
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
- YIi 权限管理和基于角色的访问控制
验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制 ...
- RBAC基于角色的访问控制
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...
- RBAC(Role-Based Access Control,基于角色的访问控制)
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
随机推荐
- 合并hive/hdfs小文件
磁盘: heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K) 文件系统: 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以 ...
- (Python基础)文件操作
对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 命名为7 years Once I was seven years old my momma t ...
- tongweb安装后无法启动问题
安装后执行bin下的启动文件,但是管理界面依然无法打开 1.确认破解的dat文件是否在跟目录下,是否过期 2.如果jdk64位试试下面的方法:JAVA_HOME/jre/lib/ext/下缺少包 su ...
- Navicat操作SQL server 2008R2文件.bak文件还原
项目操作过程中,利用Navicat操作SQL Server2008R2数据备份,结果发现数据丢失了很多,不得不先对数据丢失部分进行差异对比,然后再重新输入. 1.利用Navicat导出的数据格式为sq ...
- IntelliJ IDEA 工程Java文件上红色的无效符
IntelliJ IDEA 工程Java文件上红色的无效符(红色表示该类是不可编译文件) 1.查看Java.resources文件夹 如图所示,是因为没有配置 2.在Java文件夹点击右键找到Mark ...
- 宝塔面板配置阿里云SSL证书流程
阿里云SSL证书申请过程就不在这里说了 1 先下载阿里云成功申请的SSL证书 解压后 有3个文件 2 找到宝塔面板的 站点设置 找到SSL设置 3 找到其他证书 用文本打开.key文件 复制里面 ...
- Django 2.0 新款URL配置详解
Django2.0发布后,很多人都拥抱变化,加入了2的行列.但是和1.11相比,2.0在url的使用方面发生了很大的变化,下面介绍一下: 一.实例 先看一个例子: from django.urls i ...
- PHP SoapClient 调用与鉴权,以及对Java和C# 的webservice的兼容处理
SoapClient使用注意事项: 第一要加上 cache_wsdl参数,以防服务器调用的是缓存的wsdl文件 然后是参数传递,如果是使用PHP自己写的WebService,参数传递按正常方式即可 1 ...
- requests和session的区别
简单说 request对象和session对象的最大区别是生命周期. -request request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,req ...
- .net core 2.0 HTTPS request fails using HttpClient 安全错误
最近.net core 项目中遇到一个问题,通过Httpclient 访问https的接口报错,错误如下: WinHttpException: A security error occurred Sy ...