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)

Email

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)权限管理的更多相关文章

  1. [PHP]基于角色的访问控制RBAC

    ---------------------------------------------------------------------------------------------------- ...

  2. 移动服务和 Azure Active Directory 中基于角色的访问控制

    编辑人员注释:本文章由 Matthew Henderson撰写 去年 11月,我们发布了 Azure Active Directory (AAD) 预览版作为移动服务身份提供程序.此举旨在为企业开 ...

  3. Azure 门户中基于角色的访问控制入门

    面向安全的公司应侧重于向员工提供他们所需的确切权限. 权限过多,可能会向攻击者公开帐户. 权限太少意味着员工无法有效地完成其工作. Azure 基于角色的访问控制 (RBAC) 可通过为 Azure ...

  4. ThinkPHP中RBAC权限管理的简单应用

    RBAC英文全称(Role-Based Access Controller)即基于角色的权限访问控制,简单来讲,一个用户可以拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授 ...

  5. PHP RBAC权限管理 基于角色的访问控制演示

    RBAC rbac:Role Based Access Controll,基于角色的访问控制. 今天理一理RBAC,话不多说,直接切入主题 功能需求: 权限管理(无限极) 角色管理(可以分配权限) 管 ...

  6. RBAC(基于角色的访问控制)用户权限管理数据库设计

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

  7. YIi 权限管理和基于角色的访问控制

    验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制 ...

  8. RBAC基于角色的访问控制

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

  9. RBAC(Role-Based Access Control,基于角色的访问控制)

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

随机推荐

  1. ubuntu环境部署项目

    安装python3.6 第一步:sudo add-apt-repository ppa:jonathonf/python-3.6 如果报错为:sudo: add-apt-repository: com ...

  2. hanlp使用自定义词典抽取关键词

    1.在data/dictionary/custom/路径下新建文件 myDict.txt.,添加新的单词,单词,词性,词频.并删除当前文件夹下的bin文件, 2.在hanlp配置文件中的CustomD ...

  3. PG数据基本命令——连接(笔记)

    在PostgreSQL中,有以下类型的连接: 内连接(INNER JOIN) 左外连接(LEFT OUTER JOIN) 右外连接(RIGHT OUTER JOIN) 全连接(FULL OUTER J ...

  4. 分布式 基本理论 CAP 之 各分布式系统的cap支持情况

    分布式系统.理论.协议 非常非常多, 它们多cap 的支持是怎么样的呢? 需要注意的是,分布式系统 为了应付各种 复杂 应用场景,支持各种各样的功能,可能有的提供了选项或某种机制, 某个时刻,支持CP ...

  5. linux中ip命令使用介绍

    ifconfig是CentOS 5.6系统中经典的配置网络的命令,但是到了CentOS 7的时候,命令就变成了ip了,我们也要学习,我们也要与时俱进.跟随高手一起学习 查看链路 ip link sho ...

  6. FPGA——按键(二)

    直接上源码: module key_led( input sys_clk , //50Mhz系统时钟 input sys_rst_n, //系统复位,低有效 :] key, //按键输入信号 :] l ...

  7. php通过imap获取腾讯企业邮箱信息后的解码处理

    最近需要在项目开发的oa中集成一个收发腾讯企业邮箱邮件的功能,今天做到了获取收件箱内容部分,imap如何获取就不写了,百度一堆,主要是关于内容的解码 主要以邮件主题解码为主,腾讯企业邮返回的数据主要有 ...

  8. python 使用多进程打开多个cmd窗口,并在子进程结束之后关闭cmd窗口

    额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口 主要是我突发奇想想装逼; 如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法 ...

  9. ReactiveX 学习笔记(25)使用 RxJS + Vue.js 调用 REST API

    JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一个用于测试的 REST API 网站. ...

  10. LevelDB源码分析-Open

    Open LevelDB的初始化主要由Open函数实现: Status DB::Open(const Options &options, const std::string &dbna ...