逻辑租户指在一套Smartbi系统中拥有相对独立环境的实体,例如企业中的不同部门(销售部门、财务部、行政部等),或集团企业的子公司。
租户拥有独立的用户/数据连接/数据模型/仪表盘等资源,租户之间是隔离的,相互不可见。
需要先在smartbi中添加逻辑多租户扩展包。
注:只支持单级租户,不支持多级租户,即租户内还有租户。
系统配置
部署扩展包
在服务器节点上传multitenant.ext多租户扩展包,重启服务更新扩展包,扩展包更新步骤可参考wiki:部署扩展包 - Smartbi Insight V11帮助中心 -
以下系统内操作均由管理员用户登录处理,配置时请按顺序逐步操作。
扩展包部署完成后,在"运维设置"界面出现"多租户管理"。
点击进入,此时不能创建租户,要先设置模板角色及资源权限。
配置租户模板角色
先配置三个模板租户角色,租户信息初始化时会生会以这三个模板角色为源复制其相应的操作权限并创建租户默认角色。模板角色分别为管理员、开发者、浏览者,管理员角色权限最大,开发者其次,浏览者最小。
打开系统运维-->用户管理,点击新建角色
创建管理员角色并设置操作权限
角色名称:model_admin(不可修改)
别名:管理员(不建议修改)
为租户管理员模板角色分配操作权限,数据连接、数据准备、分析展现、社交、移动端、资源发布可分配全部权限,系统运维只分配用户管理权限。(具体权限按实际需要进行分配)
创建开发者角色并设置操作权限
角色名称:model_developer(不可修改)
别名:开发者(不建议修改)
为租户开发者模板角色分配操作权限,数据连接、数据准备、分析展现、社交、移动端可分配全部权限。(具体权限按实际需要进行分配,且其权限不能高于管理员)
创建浏览者角色并设置操作权限
角色名称:model_browser(不可修改)
别名:浏览者(不建议修改)
为租户浏览者模板角色分配操作权限,分析展现、社交、移动端,其中分析展现赋予所有报表权限(不含Excel模板导入),报表操作权限不含新建和另存;移动端不含调试、移动端缩略图上传。(具体权限按实际需要进行分配,且其权限不能高于管理员)
配置系统资源目录默认权限
租户初始化之前需要在各系统默认的资源目录配置资源权限,需要配置权限的目录有数据连接、数据准备(指标模型、自助ETL、作业流、ETL自动化、业务主题、数据集)、分析展现、公共空间。
数据连接,打开数据连接菜单,选择数据连接,点击右键打开资源授权
点击"添加授权项",选择Everyone
权限分配为查看,应用到只有该目录,不勾选允许父项的继承权限
其他目录例如数据准备(指标模型、自助ETL、作业流、ETL自动化、业务主题、数据集)、分析展现、公共空间等也按次操作进行资源授权处理。
创建租户
在多租户管理界面,点击"创建租户",填写租户信息。
在用户管理、数据连接、分析展现等界面,可以看到租户的目录。
接口说明
和第三方系统集成时,可以调用接口创建租户和租户用户。
创建租户
接口调用的格式及参数说明
请求方式:post
url示例:http://ip:port/smartbi/vision/tenant/create
请求参数(body参数)
名称 | 类型 | 必须 | 描述 |
tenantId | String | 是 | 租户id |
tenantName | String | 是 | 租户名称 |
tenantAlias | String | 否 | 租户简称 |
source | String | 否 | 租户来源 |
sourceTenantId | String | 否 | 第三方平台中的租户ID |
sourceTenantName | String | 否 | 第三方平台中的租户名称 |
maxUserNum | int | 否 | 最大用户数 |
maxResNum | int | 否 | 最大资源数 |
trialflag | int | 否 | 是否是开通试用实例。 |
testflag | int | 否 | 是否调测数据。 |
expiration | string | 是 | 过期时间 |
resourcefolderNames | String | 否 | 需要创建租户文件夹的资源目录,默认全部资源目录 |
响应参数
名称 | 类型 | 描述 |
code | String | 响应状态 |
Message | String | 响应信息 |
请求示例
{
"tenantId":"8edad3347-e493336-47c5-9a43-b31a6d74a61",
"tenantName":"A组织",
"expiration":"2023-09-29",
"folderNames":"DATASOURCES,PUBLIC_DATAMINING"
}
响应消息
{
"state": "200",
"message": "创建成功"
}
注意事项:
- 系统中的【数据连接】【业务主题】【参数定义】目录默认授权给everyone,若需要权限隔离,需要去除这个授权或者将【应用到】设置为【只有该目录】;
- 系统的【资源发布】目录下的三个发布主题,默认授权给everyone,若需要权限隔离,需要去除这个授权;
3、角色,用户组,文件夹的命名规则,需要保证名字唯一,不同公司间不可重名,若重名会直接使用已创建的角色、用户组、文件夹;
4、不同用户组的管理员操作权限都是通用的,生效范围是根据用户组授权的角色列表确定,所以一个用户不能实现在一个组织是管理员,在另一个组织是普通角色的效果;
5、根据模板角色新建的角色,在创建后就和模板角色脱钩,以后模板角色发生变更权限,和它无关;
6、若对已有用户组下的已有用户进行再次创建时,模板角色列表与之前的内容不同,会将原用户的角色覆盖成最新的模板角色;
7、若要实现追加角色的效果,需要先获取原用户的模板角色列表(调用3.3的接口),并基于该角色列表进行追加模板角色,从而实现用户的角色追加;
8、接口接收参数的编码格式为utf8。
创建租户用户
接口调用的格式及参数说明
请求方式:post
url示例:http://ip:port/smartbi/vision/tenant/user/create
请求参数(body参数)
名称 | 类型 | 必须 | 描述 |
tenantId | String | 是 | 租户id |
userName | String | 是 | 用户账号 |
password | String | 是 | 用户账号密码 |
roleType | String | 是 | 租户用户角色类型 |
groupId | String | 否 | 用户所在组织 |
响应参数
名称 | 类型 | 描述 |
code | String | 响应状态 |
Message | String | 响应信息 |
请求示例
{
"tenantId":"8edad3347-e493336-47c5-9a43-b31a6d74a61",
"userName":"demoA_browser",
"password":"123456",
"roleType":"browser"
}
响应消息
{
"state": 200,
"message": "用户创建成功"
}