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

时间:2021-11-23 01:53:11

          //用户表    
    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权限模型进行扩展。