权限管理(RBAC模型) 一条SQL查询出菜单

          //用户表
    SELECT m.* FROM sys_user su

          //用户角色表,以用户id为条件
          JOIN sys_user_role ur on su.id=ur.user_id

          //角色表,以角色id为条件
          JOIN sys_role r on ur.role_id=r.id

          //角色菜单表,以角色id为条件
          JOIN sys_role_menu rm on rm.role_id=r.id

          //菜单表,以菜单id为条件    再通过用户名进行查询
          JOIN sys_menu m on m.id = rm.menu_id  and su.name=#{name}
        

还可以基于RBAC权限模型进行扩展。

原文地址:https://www.cnblogs.com/quliang/p/11636992.html

时间: 2024-08-15 01:07:17

权限管理(RBAC模型) 一条SQL查询出菜单的相关文章

一条SQL查询语句是如何执行的

一条SQL查询语句是如何执行的 下面是MySql的基本架构示意图,从图中可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程. 大体来讲,MySQL可以分为Server层和存储引擎层两部分. Server层 Server层包括连接器.查询缓存.分析器.优化器.执行器等,涵盖了MySql的大多数核心服务功能以及所有的内置函数,所有跨存储引擎的功能都在这一层实现,比如存储过程.触发器.视图等. 存储引擎层 而存储引擎层负责数据的存储与提取.其架构模式是插件式的,支持InnoDB.MyISA

如何将sql查询出的列名用注释代替?

如何将sql查询出的列名用注释代替? 大家正常的工作的时候,会有这样的要求,客户想要看下原始数据,但是呢.前台导出又麻烦,这时候只能从数据库拷贝出来一份.但是呢,数据库里面的字段客户又看不明白,只能用数据库里面的注释.但是这时候,如果要求很多张表,难道我们要一个个复制吗?这也太tm蠢了. 1 查看我们表 select * from user_col_comments where table_name='TNAME'; 2 写上函数 create or replace function f_col

详解权限管理(RBAC)的实现方法

在说权限管理前,应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户组可以选择,指定的控制器,指定的方法 (4).可以添加控制器和方法 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用户-角色-权限"的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对

一条SQL查询语句是如何执行的?

本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构. 首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句: select * from user_info where id = 1; 返回结果为: +----+----------+----------+--------+------+---------------------+---------------------+ | id | username | password | openid |

深入理解SQL原理:一条SQL查询语句是如何执行的?

本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构. 首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句: select * from user_info where id = 1; 返回结果为: +----+----------+----------+--------+------+---------------------+---------------------+ | id | username | password | openid |

01基础架构,一条SQL查询语句是如何执行的?

SQL 语句在 MySQL 的各个功能模块中的执行过程. 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分. Server 层包括连接器.查询缓存.分析器.优化器.执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期.时间.数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程.触发器.视图等. 存储引擎层负责数据的存储和提取.其架构模式是插件式的,支持 InnoDB.MyISAM.Memory 等多个存储引擎.现在最常用的存储引擎是 In

项目后台管理之权限管理(RBAC)

首先给没有做过权限的小伙伴普及一下,权限管理主要思想就是采用RBAC(Role-Based Access Control)的设计方法. 在我们的项目中使用的是基本的5张表设计方法,包括(用户表,用户角色关系表,角色表,角色权限关系表,权限表),当然如果项目结构和管理结构比较庞大也可以加上更多的权限控制,比如加上部门的设计思想,这里就不再展开叙述,现在说一下基本的5张表设计思想及实现. 1.用户表:包含用户的基本信息 2.角色表:包含该角色具有的基本信息 3.用户角色表:包含用户和角色的基本关系,

50条SQL查询技巧、查询语句示例

学习了 1.查询"001"课程比"002"课程成绩高的所有学生的学号: 2.查询平均成绩大于60分的同学的学号和平均成绩: 3.查询所有同学的学号.姓名.选课数.总成绩: 4.查询姓"李"的老师的个数: 5.查询没学过"叶平"老师课的同学的学号.姓名: 6.查询学过"001"并且也学过编号"002"课程的同学的学号.姓名: 7.查询学过"叶平"老师所教的所有课的同学的

50条SQL查询技巧

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1.查询"001"课程比"002"课程成绩高的所有学生的学号: select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002')