3. ThingsBoard 控制台初探:租户管理、客户管理、用户管理、角色与权限

在 ThingsBoard 平台中,租户(Tenant)、客户(Customer)、用户(User) 和 角色权限(Role & Permission) 构成了核心的多租户访问控制体系。理解这四个概念及其层级关系,是进行平台管理与项目交付的基础。

💡 核心概念速览: 租户是平台的“独立租用者”(如一家公司),客户是租户下的“终端用户”(如公司的一个部门或客户),用户是具体的登录账号,角色则定义了用户能做什么。

3.1 四层模型与层级关系

ThingsBoard 采用严格的多租户架构,数据与资源在租户层面天然隔离。下图展示了从系统管理员到最终用户的完整层级关系:

ThingsBoard 多租户层级关系图 系统管理员 (SysAdmin) 租户 (Tenant) 客户 (Customer) 用户 (User) 角色与权限 (Role & Permission) 每个用户被分配一个角色,角色决定该用户对设备、资产、仪表板等资源的操作权限。

3.2 租户管理

租户是 ThingsBoard 多租户架构中的顶层业务实体。每个租户拥有独立的设备、资产、仪表板、规则链和用户体系。系统管理员(SysAdmin)负责创建和管理所有租户。

3.2.1 租户的核心属性

属性 说明 示例值
租户名称 业务标识,通常为公司或项目名称 智慧农业科技有限公司
租户邮箱 用于接收系统通知和告警 admin@agri-tech.com
租户套餐 定义设备数量、API 调用次数等资源上限 Professional
租户区域 数据存储的地理区域(云部署时) 中国(上海)

3.2.2 租户管理操作

  1. 创建租户: 系统管理员登录后,进入 租户管理 页面,点击“+”按钮,填写租户名称、邮箱、套餐等信息。
  2. 编辑租户: 修改租户基本信息或升级套餐。
  3. 删除租户: 删除租户会同时移除其所有关联数据(设备、客户、仪表板等),操作不可逆。
  4. 查看租户详情: 查看租户下的设备数量、活跃用户数、数据使用量等统计信息。
⚠️ 重要提醒: 删除租户前,请务必确认该租户下没有正在运行的业务。建议先停用租户,观察一段时间后再执行删除操作。

3.3 客户管理

客户 是租户下的子实体,用于进一步细分业务。例如,一个智慧园区租户下可以有“A栋办公楼”、“B栋宿舍楼”等多个客户。客户可以拥有自己的用户、设备和仪表板。

3.3.1 客户与租户的对比

对比维度 租户 客户
创建者 系统管理员 租户管理员
资源隔离 完全隔离,数据不可见 租户内部分组隔离
典型场景 一家独立公司 公司下的一个部门或项目
用户类型 租户管理员、租户用户 客户用户

3.3.2 客户管理操作

  • 创建客户: 租户管理员登录后,进入 客户管理 页面,填写客户名称、邮箱、地址等信息。
  • 为客户分配用户: 创建客户后,可以为其创建专属用户账号,这些用户只能访问该客户下的资源。
  • 查看客户资产: 查看该客户关联的设备、仪表板、规则链等资源列表。

3.4 用户管理

用户 是平台的实际操作者。每个用户必须属于一个租户或客户,并拥有一个登录账号(邮箱 + 密码)。

3.4.1 用户类型

用户类型 所属层级 典型权限
系统管理员 系统级 管理所有租户、查看系统统计
租户管理员 租户级 管理租户下的客户、用户、设备、仪表板
租户用户 租户级 访问租户下的指定资源
客户用户 客户级 仅访问所属客户下的资源

3.4.2 用户管理操作

  1. 添加用户: 在租户或客户页面下,点击“添加用户”,输入邮箱并设置初始密码。
  2. 激活用户: 新用户首次登录时会收到激活邮件,按提示设置密码后即可使用。
  3. 禁用/启用用户: 临时阻止用户登录,而不删除其账号和数据。
  4. 重置密码: 管理员可以强制重置用户密码。

3.5 角色与权限

ThingsBoard 使用 基于角色的访问控制(RBAC) 模型。角色是一组权限的集合,用户通过被赋予角色来获得相应的操作权限。

3.5.1 预定义角色

角色名称 适用范围 核心权限
系统管理员 系统级 所有系统管理功能
租户管理员 租户级 租户内所有管理功能
客户管理员 客户级 客户内所有管理功能
只读用户 租户/客户级 查看仪表板、设备数据,无编辑权限

3.5.2 自定义角色

除了预定义角色,ThingsBoard 支持创建自定义角色,实现精细化权限控制。例如,可以创建一个“设备运维员”角色,仅允许其查看设备遥测数据和执行固件升级,但禁止删除设备或修改规则链。

🔧 自定义角色配置步骤:
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 平台,需要创建以下结构:

  1. 系统管理员 创建一个名为“智慧农业科技有限公司”的租户。
  2. 租户管理员 登录后,创建两个客户:“大棚种植基地”和“畜牧养殖场”。
  3. 租户管理员 为“大棚种植基地”创建一个客户管理员用户(greenhouse_admin@agri.com),并赋予“客户管理员”角色。
  4. 客户管理员 登录后,可以创建只读用户(如 viewer@agri.com),用于给农场主查看实时数据。
💡 最佳实践: 在实际项目中,建议遵循“最小权限原则”——只为用户分配完成工作所需的最小权限集合。例如,给现场运维人员分配“只读用户”角色,避免误操作导致数据丢失。