上文《Jeecgboot低代码平台实施实战系列(十六)多租户场景之用户权限配置》我们在jeecgboot里面实现了多租户的配置,但是在查看对应界面的数据的时候,我们看到了所有的数据,如下图:
这种情况的出现是完全不合理的,他没有实现租户数据的隔离,所以本文我们来介绍下在多租户系统里面如何实现数据隔离。
这里对应的数据隔离的话,无法直接通过配置来实现,而是需要进行二开的配置,所以把本文写到二开的系列里面来。
备注:
1、这里是修改代码,所以这里修改完后一定要重启后端的服务。
一、修改多租户配置表管理
我们上面的示例主要是供应商管理这块,那么此时的话,我们对应两个表单,分别是:
suppliter_site driverssiji
我们需要把这两个表添加到租户管理的逻辑里面找到jeecgboot后端代码的jeecg-boot-base-core中的org.jeecg.config.mybatis.MybatisPlusSaasConfig类中,在static代码里面添加上如下的代码:
TENANT_TABLE.add("driverssiji"); TENANT_TABLE.add("suppliter_site");
这里的意思是操作这个表的话,需要加入多租户管理。
二、添加多租户字段
在jeecgboot中,多租户的表字段固定为:tenant_id,所以这里我们需要为这些表添加一个tenant_id,这里可以直接在表单上进行设计,然后再通过同步数据库的方式实现,但是考虑到有时候我们会生成代码到本地,所以咱们直接操作数据库即可,对应的操作语句是:
ALTER TABLE driverssiji ADD COLUMN tenant_id int(10) NULL DEFAULT 0; ALTER TABLE suppliter_site ADD COLUMN tenant_id int(10) NULL DEFAULT 0;
执行完成之后,这个tennant_id就被添加到对应的表里面去了
三、测试应用
接下来我们重新登录ceshi这个账户,查看司机管理和站点管理的列表
可以看到这里已经没有数据被展示出来了,咱们添加一条数据
可以看到添加出了数据,然后我们给这个用户更换一个租户
然后等待页面刷新,可以看到司机管理里面已经没有这个租户数据了
以上就是实现多租户数据隔离的教程。
还没有评论,来说两句吧...