Skip to content

多租户

多租户版本支持基于底座创建saas化服务。

xml
<!-- 系统配置相关controller接口及web配置 -->
<dependency>
    <groupId>cn.zjtele.pubinfo.sys.rbac</groupId>
    <artifactId>rbac-extension</artifactId>
</dependency>

启用配置说明

yaml
pubinfo:
  tenant:
    # 是否开启多租户
    enable: true
    # 需要忽略多租户过滤的表
    ignoreTables:
      - test_table

租户管理

多租户账号主要用户身份说明:

  • 平台超级管理员身份: 是平台的初始超级管理员账号(拥有所有的菜单权限)
  • 平台运营用户身份: 是平台级的普通账号,权限通过admin分配相应的角色获得(菜单权限由admin分配),主要进行租户的管理操作
  • 租户管理员身份: 是由平台相关运营人员添加租户时生成的账号 管理对应租户下的用户(菜单权限由平台相关人员分配)
  • 租户普通用户身份: 通过租户管理员进行创建的租户下人员 (菜单权限由租户管理员分配)

租户功能使用流程

  • 添加租户,给租户分配菜单权限,并创建租户管理员

  • 租户管理员登录

注意

租户级身份用户(租户管理员+普通用户)使用账号@租户code登录`

  • 租户管理员创建组织、角色、用户,并对用户进行授权

  • 租户普通用户登录使用平台

租户数据隔离

底座采用共享表增加tenant_id的方式,实现多租户之前数据的隔离。

  • 效果:在每次sql操作时会在where后添加条件and tenant_id = ?
  • 忽略:如果个别方法不想启用多租户的方式可以使用注解进行多租户功能的忽略 @PubIgnoreTenant 全路径名称:cn.zjtele.pubinfo.sys.rbac.extensions.datapermission.annotation.PubIgnoreTenant
  • 开启多租户后,需要在表上添加 tenant_id字段

底座在登录之后,会在RequestContext中设置tenantId。

注意

多租户模式,微服务下,基础微服务中,认证服务(auth)和系统管理服务(sys)均需要打开多租户开关。