• 阶段5 3.微服务项目【学成在线】_day18 用户授权_07-动态查询用户权限-权限数据模型


    3 动态查询用户权限
    3.1 需求分析
    截至目前在测试授权时使用的权限数据是静态数据,正常情况的流程是:
    1、管理员给用户分配权限,权限数据写到数据库中。
    2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)
    本节实现动态权限数据。

    之前权限是这里硬编码 写死的权限


    3.2.1 数据模型结构
    打开xc_user数据库,找到下边的表:



    xc_user:用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等
    xc_role:角色表,存储了系统的角色信息,学生、老师、教学管理员、系统管理员等。
    xc_user_role:用户角色表,一个用户可拥有多个角色,一个角色可被多个用户所拥有
    xc_menu:模块表,记录了菜单及菜单下的权限
    xc_permission:角色权限表,一个角色可拥有多个权限,一个权限可被多个角色所拥有

    3.2.2 数据模型的使用

    本项目教学阶段不再实现权限定义及用户权限分配的功能,但是基于权限数据模型(5张数据表)及现有数据,要
    求学生在数据库中操作完成给用户分配权限、查询用户权限等需求。
    1、查询用户所拥有的权限
    步骤:
    确定用户的id
    查询用户所拥有的角色
    查询用户所拥有的权限

    查询49号用户,拥有的权限。


    先查询到这个用户

    再查用户的角色


    角色的权限

    拿到角色的权限

    code就是权限标识符


    新增加一条权限

    想让用户拥有这条添加的权限 xc_permission



    再查询sql就可以拿到查询图片的权限了。



    SELECT * FROM xc_menu WHERE id IN(
    SELECT menu_id FROM xc_permission WHERE role_id IN(
    SELECT role_id FROM xc_user_role WHERE user_id = '49'
    )
    )


    也可以通过添加角色的形式给用户添加权限。

    给用户多设置几个角色








     

  • 相关阅读:
    C# 关键字 之 virtual
    Set NOCOUNT 和 SET XACT_ABORT
    radl+ReportViewer (转)
    销售利润分析案例
    实现动态展现报表:2种开发思路
    jdk,tomcat,myecplise程序安装步骤
    BI报表工具选型的整理总结
    MyEclipse 快捷键
    oracle biee
    跨数据库
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11650663.html
Copyright © 2020-2023  润新知