跳到主要内容

新功能SAAS配置

针对某个表实现SAAS隔离,具体实现以下功能

  1. 添加数据自动注入登录人 租户ID。
  2. 查询自动根据登录人租户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