3. ThingsBoard 控制台初探:租户管理、客户管理、用户管理、角色与权限
在 ThingsBoard 平台中,租户(Tenant)、客户(Customer)、用户(User) 和 角色权限(Role & Permission) 构成了核心的多租户访问控制体系。理解这四个概念及其层级关系,是进行平台管理与项目交付的基础。
💡 核心概念速览: 租户是平台的“独立租用者”(如一家公司),客户是租户下的“终端用户”(如公司的一个部门或客户),用户是具体的登录账号,角色则定义了用户能做什么。
3.1 四层模型与层级关系
ThingsBoard 采用严格的多租户架构,数据与资源在租户层面天然隔离。下图展示了从系统管理员到最终用户的完整层级关系:
3.2 租户管理
租户是 ThingsBoard 多租户架构中的顶层业务实体。每个租户拥有独立的设备、资产、仪表板、规则链和用户体系。系统管理员(SysAdmin)负责创建和管理所有租户。
3.2.1 租户的核心属性
| 属性 | 说明 | 示例值 |
|---|---|---|
| 租户名称 | 业务标识,通常为公司或项目名称 | 智慧农业科技有限公司 |
| 租户邮箱 | 用于接收系统通知和告警 | admin@agri-tech.com |
| 租户套餐 | 定义设备数量、API 调用次数等资源上限 | Professional |
| 租户区域 | 数据存储的地理区域(云部署时) | 中国(上海) |
3.2.2 租户管理操作
- 创建租户: 系统管理员登录后,进入 租户管理 页面,点击“+”按钮,填写租户名称、邮箱、套餐等信息。
- 编辑租户: 修改租户基本信息或升级套餐。
- 删除租户: 删除租户会同时移除其所有关联数据(设备、客户、仪表板等),操作不可逆。
- 查看租户详情: 查看租户下的设备数量、活跃用户数、数据使用量等统计信息。
⚠️ 重要提醒: 删除租户前,请务必确认该租户下没有正在运行的业务。建议先停用租户,观察一段时间后再执行删除操作。
3.3 客户管理
客户 是租户下的子实体,用于进一步细分业务。例如,一个智慧园区租户下可以有“A栋办公楼”、“B栋宿舍楼”等多个客户。客户可以拥有自己的用户、设备和仪表板。
3.3.1 客户与租户的对比
| 对比维度 | 租户 | 客户 |
|---|---|---|
| 创建者 | 系统管理员 | 租户管理员 |
| 资源隔离 | 完全隔离,数据不可见 | 租户内部分组隔离 |
| 典型场景 | 一家独立公司 | 公司下的一个部门或项目 |
| 用户类型 | 租户管理员、租户用户 | 客户用户 |
3.3.2 客户管理操作
- 创建客户: 租户管理员登录后,进入 客户管理 页面,填写客户名称、邮箱、地址等信息。
- 为客户分配用户: 创建客户后,可以为其创建专属用户账号,这些用户只能访问该客户下的资源。
- 查看客户资产: 查看该客户关联的设备、仪表板、规则链等资源列表。
3.4 用户管理
用户 是平台的实际操作者。每个用户必须属于一个租户或客户,并拥有一个登录账号(邮箱 + 密码)。
3.4.1 用户类型
| 用户类型 | 所属层级 | 典型权限 |
|---|---|---|
| 系统管理员 | 系统级 | 管理所有租户、查看系统统计 |
| 租户管理员 | 租户级 | 管理租户下的客户、用户、设备、仪表板 |
| 租户用户 | 租户级 | 访问租户下的指定资源 |
| 客户用户 | 客户级 | 仅访问所属客户下的资源 |
3.4.2 用户管理操作
- 添加用户: 在租户或客户页面下,点击“添加用户”,输入邮箱并设置初始密码。
- 激活用户: 新用户首次登录时会收到激活邮件,按提示设置密码后即可使用。
- 禁用/启用用户: 临时阻止用户登录,而不删除其账号和数据。
- 重置密码: 管理员可以强制重置用户密码。
3.5 角色与权限
ThingsBoard 使用 基于角色的访问控制(RBAC) 模型。角色是一组权限的集合,用户通过被赋予角色来获得相应的操作权限。
3.5.1 预定义角色
| 角色名称 | 适用范围 | 核心权限 |
|---|---|---|
| 系统管理员 | 系统级 | 所有系统管理功能 |
| 租户管理员 | 租户级 | 租户内所有管理功能 |
| 客户管理员 | 客户级 | 客户内所有管理功能 |
| 只读用户 | 租户/客户级 | 查看仪表板、设备数据,无编辑权限 |
3.5.2 自定义角色
除了预定义角色,ThingsBoard 支持创建自定义角色,实现精细化权限控制。例如,可以创建一个“设备运维员”角色,仅允许其查看设备遥测数据和执行固件升级,但禁止删除设备或修改规则链。
🔧 自定义角色配置步骤:
1. 进入 角色管理 页面。
2. 点击“创建新角色”,输入角色名称(如“设备运维员”)。
3. 在权限列表中,勾选允许的操作(如:读取设备、执行 RPC 命令)。
4. 保存角色,并将其分配给目标用户。
1. 进入 角色管理 页面。
2. 点击“创建新角色”,输入角色名称(如“设备运维员”)。
3. 在权限列表中,勾选允许的操作(如:读取设备、执行 RPC 命令)。
4. 保存角色,并将其分配给目标用户。
3.6 权限控制矩阵
下表展示了不同角色对核心资源的默认访问权限(R=读取,W=写入,D=删除,—=无权限):
| 资源类型 | 系统管理员 | 租户管理员 | 客户管理员 | 只读用户 |
|---|---|---|---|---|
| 租户 | R/W/D | — | — | — |
| 客户 | R/W/D | R/W/D | — | — |
| 设备 | R | R/W/D | R/W | R |
| 仪表板 | R | R/W/D | R/W | R |
| 规则链 | R | R/W/D | — | — |
3.7 实战案例:为智慧农业项目创建租户与用户
假设我们要为一个智慧农业项目搭建 ThingsBoard 平台,需要创建以下结构:
- 系统管理员 创建一个名为“智慧农业科技有限公司”的租户。
- 租户管理员 登录后,创建两个客户:“大棚种植基地”和“畜牧养殖场”。
- 租户管理员 为“大棚种植基地”创建一个客户管理员用户(
greenhouse_admin@agri.com),并赋予“客户管理员”角色。 - 客户管理员 登录后,可以创建只读用户(如
viewer@agri.com),用于给农场主查看实时数据。
💡 最佳实践: 在实际项目中,建议遵循“最小权限原则”——只为用户分配完成工作所需的最小权限集合。例如,给现场运维人员分配“只读用户”角色,避免误操作导致数据丢失。