新功能SAAS配置
针对某个表实现SAAS隔离,具体实现以下功能
- 添加数据自动注入登录人 租户ID。
- 查询自动根据登录人租户ID进行数据筛选。
具体步骤
1. 代码配置
将需要租户隔离的表名加入到org.jeecg.config.mybatis.MybatisPlusSaasConfig.TENANT_TABLE
集合中。
示例:
TENANT_TABLE.add("demo");
2. 数据库表加租户ID字段
上述多租户的表需要添加一个int
类型字段 tenant_id
,同时java对应实体也加上字段tenantId
。
ALTER TABLE {表名} ADD COLUMN tenant_id int(10) NULL DEFAULT 0;
3. 租户配置
3. 1 新增多租户
进入菜单 系统管理 >【租户管理】,配置租户。
3.2 给用户分配租户
进入【用户管理】设置用户的租户,支持一个用户选择多个租户
4. 选择租户登录(测试)
当用户有多个租户的时候,登录的时候会自动选择一个租户登录或者上次登录过的租户, 切换租户通过右上角的“切换部门” 这个时候访问对应模块,会发现数据通过租户ID实现了隔离,新增数据会自动带上租户ID。
其他规则
1. 微服务下多租户ID怎么在不同服务间传递
- 登录之后租户ID会在前端存储
- 每次请求会携带header
X-Tenant-Id
值为租户ID - 每个服务都可以从request中获取租户ID
String tenantId = req.getHeader("X-Tenant-Id");
2. 用户未分配租户情况下
登录 X-Tenant-Id
会以默认租户ID 0