简单的rbac用户角色权限控制

月眸eyesmoon 月眸eyesmoon     2022-10-15     507

关键词:

Java web项目中,无论项目是大是小,或多或少都会涉及到用户访问权限的控制,权限管理总体的设计思路就是,不该看的不看,不该做的不做!据我目前的了解,我所知道的几种实现访问权限控制的方式有:

JQuery的zTree设计权限树; 
权限框架shiro; 
基于角色的访问控制RBAC;

这是我所知道的几种权限管理,如果有误或是还有其他的方法,望指正! 
而今天我要说的就是基于角色的访问控制RBAC的权限管理,基于角色的访问控制(Role-Based Access Control),在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。最后的结果就是不同的用户登录系统会看到不同的功能,也就是菜单。

首先是数据库的设计,需要用户表(user),角色表(role),权限表(permission),还需要两张中间表,用户-角色表(user_role),角色-权限表(role_permission),表结构如下:

用户表(user)

技术分享图片

用户-角色表(user_role)

技术分享图片

角色表(role)

技术分享图片

权限表(permission)

技术分享图片

角色-权限表(role_permission)

技术分享图片

这是基础5张表的表结构设计,写一个SQL语句测试一下,代码如下:

select u.id,u.true_name,r.role_name,p.permission_name,m.menu_name
from user u 
INNER JOIN user_role ur on u.id = ur.user_id
INNER JOIN role r on ur.role_id = r.id
INNER JOIN role_permission rp on r.id = rp.role_id
INNER JOIN permission p on rp.permission = p.id
INNER JOIN permission_menu pm on p.id = pm.permission_id
INNER JOIN menu m on pm.menu_id = m.id
WHERE m.parent_id = 1 

查询结果:

技术分享图片

一般来说,简单的权限管理使用这5张表就可以实现,权限即是菜单。但是在这个例子中我多连接了一个菜单表,为了方便菜单的显示,方便观察。




rbac基于角色的访问控制

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般... 查看详情

rbac

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般... 查看详情

rbac权限管理

...Role-BasedAccessControl)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,... 查看详情

rbac权限管理

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般... 查看详情

rbac用户角色权限设计方案转载

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间... 查看详情

基于角色的访问控制(rbac)权限管理

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间... 查看详情

rbac用户权限管理数据库设计

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成"用户-角色-权限"的授权模型。 查看详情

用户权限管理数据库设计(rbac)

...角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般... 查看详情

rbac模型设计

...型可以分为:RBAC0、RBAC1、RBAC2、RBAC3四种。1、RBAC0模型最简单的用户、角色、权限模型。这里面又包含了2种:用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。用户和角色是多对多关系,... 查看详情

rbac权限控制

RBAC的控制,大致是通过将角色的权限控制,来控制用户的权限.需要构建的表为用户表(user),角色表(role),节点表(node),三张主表,节点表内记录的是所有的权限和方法.2张关联表,是为了关联3张数据表的,分别未角色用户表(user_role),角色... 查看详情

什么是rbac?

...题,W、Z、H构成了访问权限三元组。权限与角色相关联,用户通过称为适当角色的成员而得到这些角色的权限,极大的简化了权限的管理。RBAC的组成3个基础组成部分-用户-角色-权限RBAC通过定义角色的权限,并且对用户授予某个... 查看详情

rabc--权限控制解读

...构成了RBAC96模型族。二、基于RBAC的几种权限体系设计1、用户-角色-权限这种权限体系其实就是RBAC0的模式了。这里面又包含了2种:用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当;用户... 查看详情

权限管理(rbac)

...任分离原则和数据抽象原则。RBAC的基本思想是:授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。RBAC中许可被授权给角色,角色被授权给用户,用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管... 查看详情

权限控制rbac模型

...目的是为了简化授权和鉴权的过程。RBAC模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限... 查看详情

rbac权限控制(代码片段)

...的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指... 查看详情

基于rbac权限控制模型的管理系统的设计与实现(代码片段)

...管理,减少系统的开销。(以上来源于百度)简单理解就是,将用户、角色、权限之间建立一种关系,当为用户赋权时,可用通过角色来间接赋权。如:一个用户的角色是系统的管理员,他拥有对... 查看详情

基于rbac权限控制模型的管理系统的设计与实现(代码片段)

...管理,减少系统的开销。(以上来源于百度)简单理解就是,将用户、角色、权限之间建立一种关系,当为用户赋权时,可用通过角色来间接赋权。如:一个用户的角色是系统的管理员,他拥有对... 查看详情

转:rbac权限控制

...ngSecurity, 一.RBAC要解决的常见问题问题一:对某一个用户只授予一些特殊的权限描述:既不希望扩大某一个角色的权限,也不希望因此创建出很多零碎的、只为一个用户而存在的角色。 问题二:性能问题描述:B/S下,菜... 查看详情