[SSM+layui]汽车出租系统07_RBAC权限管理及表分析说明怎么设置权限联合主键sql语句分析distinct去重

Posted 平凡加班狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[SSM+layui]汽车出租系统07_RBAC权限管理及表分析说明怎么设置权限联合主键sql语句分析distinct去重相关的知识,希望对你有一定的参考价值。

系列文章目录

RBAC权限管理及表分析说明

什么是RBAC
在这里插入图片描述
在这里插入图片描述
首先是菜单不一样,还有可能连菜单里面的功能都不一样
在这里插入图片描述

这就是为什么要有三张表的原因,分别是菜单表、角色表、权限表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要我们做这么一个映射表
比如下面我们标记的地方
1号角色拥有1号菜单、
1号角色拥有2号菜单、
1号角色拥有3号菜单、
1号角色拥有4号菜单、
1号角色拥有5号菜单、
…………
在这里插入图片描述
这样就就一目了然,很好处理了
在这里插入图片描述
他们联合起来的组合也不能重复,要怎么去限制
这就需要涉及到一个知识,叫做:联合主键
什么是联合主键,就是两个字段组合起来的组合不能重复
下面看,我们如果要设置部门经理的权限的映射关系,
要怎么做,其实很简单
在这里插入图片描述
在这里插入图片描述
这个肯定要关联表的
怎么查?
如果是已知用户id最少要关联这三张表才知道角色id,如果还要知道所有菜单,还需要继续关联表

select * from  sys_users,
							 sys_role_user,
							 sys_roles 
where sys_users.userid=sys_role_user.uid
	and   sys_role_user.rid=sys_roles.roleid
	and sys_users.userid=3

在这里插入图片描述
如果还要知道所有菜单,还需要继续关联表

select DISTINCT sys_users.userid,sys_users.realname, 
				sys_roles.roleid,sys_roles.rolename,
				sys_menus.id,sys_menus.title
from  
							 sys_users,
							 sys_role_user,
							 sys_roles ,
							 sys_role_menu,
							 sys_menus
							 
where sys_users.userid=sys_role_user.uid
	and sys_role_user.rid=sys_roles.roleid
	and sys_role_menu.mid=sys_menus.id
	and sys_users.userid=3

在这里插入图片描述
这样就全部查出来了

但是这里是已知角色id那就不一样了
需要关联角色表吗
注意,我们已经知道角色id了,关联角色表还有意义吗,没有意义,所以这里不需要关联角色表
(意思就是三张表关联就行了,不需要五张表关联)
select * from
sys_roles,
sys_role_menu,
sys_menus
where sys_roles.roleid=sys_role_menu.rid
and sys_role_menu.mid=sys_menus.id
and sys_roles.roleid=1
在这里插入图片描述
但是如果只是知道角色名称就不一样了,这个后面再研究
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
很简单,这样设计就好了
在这里插入图片描述
如果要给张三分配两个角色,一个保安、一个部门经理,这个怎么实现
答案如下
在这里插入图片描述
在这里插入图片描述

关于权限管理必备的sql知识

思考这两个问题
在这里插入图片描述
怎么写?
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
sql梳理清楚之后下一步做什么
一定要先做菜单的增删改查,我们下一篇文章来具体实现

总结

做权限管理,先梳理好sql,以及表结构
先有思路再写代码

以上是关于[SSM+layui]汽车出租系统07_RBAC权限管理及表分析说明怎么设置权限联合主键sql语句分析distinct去重的主要内容,如果未能解决你的问题,请参考以下文章

[SSM+layui]汽车出租系统011_菜单管理-修改头文件报错

[SSM+layui]汽车出租系统03_项目环境搭建(添加外部的servlet-api.jar)

[SSM+layui]汽车出租系统011_菜单管理-删除有子节点就不能删改了xml要重启服务删除菜单的时候关联关系也要删除通过模型驱动获取值

[SSM+layui]汽车出租系统013_角色(Role)管理CRUD(增删改查)批量删除的实现角色关联菜单搜索和替换操作要勾上区分大小写,否则会出问题

[SSM+layui]汽车出租系统06_加载左侧菜单(角色里面 type为1的就是超级管理员(这里)简单json如何转变成标准json)List和ArrayList的区别项目中空指针错误怎么解决(代码

使用SSM+Layui+Bootstrap实现汽车维保系统