Shiro安全框架(Shiro与SpringBoot整合开发)授权部分(二)连接数据库

本文介绍了如何将Shiro的授权数据持久化到MySQL数据库中,包括设计思路、数据库表结构(如用户-角色-权限表)、角色初始化以及代码实现。通过实现Realm,从数据库获取并处理角色信息,实现了用户登录后的权限控制。
摘要由CSDN通过智能技术生成

一、思路设计整合

我们之前已经为大家展示了一下shiro授权数据在Realm中的简单实现,那这时我们就要将shiro的授权数据持久化至数据库中去,因为我们将来一个系统一定是有很多用户,并且也是拥有很多角色的,我们的授权数据不可能总是在Realm中写,所以这时,我们就要将授权数据持久化进数据库中去。接下来就简单分析一下思路。

首先,我们要实现从数据库中获取权限信息,那么第一件事就是要设计表结构,我们有这样几种设计思路:

第一种模式: 用户  ---------->  角色  ---------->  权限  --------->  资源url

第二种模式:用户  ----------->  角色

第三种模式:用户  ----------->  权限

 

这里我们就以第一种模式来实现权限控制,首先是权限控制的思维导图:

这里我们的思路就是,一个用户可以拥有多个角色,那反过来一个角色也可以被多个用户拥有,同样的一个角色可以有多个权限,那一个权限也会被多个角色持有,也就是说用户和角色之间的关系是多对多的,角色和权限也是多对多的,为了将来我们从数据库取用户的权限(也就是说要将多对多处理为两个一对多),我们还需要两张用户和角色之间的中间关系表,也需要角色和权限字符串之间的角色权限表。所以说其实在权限的数据库表设计方面,我们一定是要站在多个角度来设计数据库表的。

二、数据库表设计

1.表设计

那么我们就开始设计表了,首先是角色表:

表名:t_role

id,角色名称

接着是权限表:

表名:t_perms

id,权限名称

然后再来创建用户与角色的中间表:
       表名:t_user_role

再之后是角色权限的中间表:

表名:t_role_perms

五张表总览:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值