租户管理
租户管理用于在公共租户中维护整个平台的所有租户,包括租户授权信息、数据库连接以及租户初始化。
概述
从 开发中心 → 开发设置 → 租户授权 进入租户管理页面。该页签仅在公共租户(common)下可见,用于集中维护平台内的全部租户。
在多租户模式下,每个租户对应一套独立的物理数据库(chameleon_{tenantId}),租户管理即负责这些租户的授权周期、连接参数与初始化动作:
- 租户列表:以表格方式展示所有租户,支持查询、新增、编辑与查看详情。
- 租户详情:在详情抽屉中执行自定义数据库连接、刷新数据库密码、获取数据库连接信息、重新注册数据库、租户初始化、重置管理员等操作。
谨慎操作
租户初始化、重新注册数据库、刷新数据库密码等操作会直接影响租户的运行,且部分操作不能对当前登录租户自身执行。请在明确影响范围后操作。
配置项
租户列表字段
| 配置项 | 说明 |
|---|---|
| TenantId | 租户唯一标识,创建时填写,作为物理库与请求路由的依据 |
| 名称 | 租户显示名称 |
| 描述 | 租户用途说明 |
| 授权开始时间 | 租户授权生效时间 |
| 授权结束时间 | 租户授权到期时间,新增时必填 |
| 是否开发租户 | 标记为开发租户,可访问开发设置等能力 |
| 自定义数据库连接 | 是否使用自定义数据库连接 |
| 自定义域名 | 租户独立访问域名 |
| 租户等级 | 租户等级,取值范围 0~5 |
| 创建时间 / 创建人 / 修改时间 / 修改人 | 审计字段 |
新增与编辑
| 操作 | 可填写字段 |
|---|---|
| 新增租户 | 租户 ID(TenantId)、授权结束时间(EndTime)、描述(Description) |
| 编辑租户 | 名称(Name)、授权结束时间、自定义域名、租户等级、是否开发租户、描述 |
操作项
| 操作 | 说明 |
|---|---|
| 查看详情 | 打开抽屉查看租户全部属性 |
| 编辑 | 修改租户的基本信息 |
| 自定义数据库连接 | 配置租户使用自建数据库(Host、端口、用户名、密码) |
| 刷新数据库密码 | 重新生成租户数据库密码(Chameleon 密码) |
| 租户数据库信息 | 查看租户数据库的用户名与密码 |
| 重新注册租户数据库 | 从连接池移除并按租户库信息重新注册 |
| 租户初始化 | 初始化租户数据库结构,完成后才可正常使用 |
| 重置管理员 | 重新创建租户的默认开发账号 |
新增后需初始化
新增租户成功后,需要对该租户执行租户初始化,租户才能正常使用。
下一步
属性与接口明细
以下内容面向技术实现与 AI 检索。
租户实体属性
租户存储在 system_tenantinfo,实体类型为 TenantInfo,继承自 EntityBase。
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
_id | string(GUID) | 主键 | 例:9f1c0b2e-... |
TenantId | string | 租户唯一标识 | 作为物理库名 chameleon_{TenantId} 与请求头 X-Tenant-Id 的依据 |
Name | string | 租户名称 | 显示名称 |
Description | string | 说明 | 纯文本 |
StartTime | datetime | 授权开始时间 | ISO 时间 |
EndTime | datetime | 授权结束时间 | 新增时必填 |
DbPassword | string | 数据库密码 | Chameleon 密码由初始化自动生成,可刷新;自定义密码不可刷新 |
CustomDbConnection | bool | 是否使用自定义数据库连接 | true / false |
DbHost | string | 数据库 Host | 自定义连接时必填 |
DbPort | int | 数据库端口 | 自定义连接时必填,最大 999999 |
DbUserName | string | 数据库用户名 | 自定义连接时必填 |
CustomDomain | string | 自定义域名 | 用于按域名解析租户 |
TenantLevel | int | 租户等级 | 0~5 |
IsDevTenant | bool | 是否开发租户 | true / false |
Initialized | bool | 是否已初始化 | 初始化后置为 true |
ReleaseSqlVersion | int | 已发布的 SQL 版本 | 迁移版本号 |
Properties | object | 自定义属性 | JSON 序列化后存为 text(TenantInfoProperties) |
存储示例
{
"_id": "9f1c0b2e-2d3a-4e6f-9c11-0f7a5b8d2e10",
"TenantId": "acme",
"Name": "示例租户",
"Description": "演示环境",
"StartTime": "2026-01-01T00:00:00",
"EndTime": "2027-01-01T00:00:00",
"CustomDbConnection": false,
"DbHost": null,
"DbPort": 0,
"DbUserName": null,
"CustomDomain": "acme.example.com",
"TenantLevel": 1,
"IsDevTenant": true,
"Initialized": true,
"ReleaseSqlVersion": 33
}
相关接口
除 Init 接口外,所有接口均要求当前请求位于公共租户(ChameleonPlatformHelper.RequireCommonTenant())。
| 接口 | 方法 | 说明 |
|---|---|---|
POST /api/TenantInfo/Add | POST | 新增租户 |
POST /api/TenantInfo/Edit | POST | 编辑租户 |
POST /api/TenantInfo/EditProperties | POST | 编辑自定义属性 |
POST /api/TenantInfo/EditCustomDbConnection | POST | 编辑自定义数据库连接 |
POST /api/TenantInfo/RefreshDbPassword | POST | 刷新数据库密码(参数 id) |
POST /api/TenantInfo/ReRegisterTenantDatabase | POST | 重新注册租户数据库(参数 id) |
GET /api/TenantInfo/GetTenantDatabaseConnectionInfo | GET | 获取数据库连接信息(参数 id) |
GET /api/TenantInfo/Get | GET | 获取租户详情(参数 id) |
POST /api/TenantInfo/GetList | POST | 分页查询租户列表 |
GET /api/TenantInfo/GetAllTenantIdList | GET | 获取全部租户 ID |
POST /api/TenantInfo/Init | POST | 租户初始化(参数 tenantId) |
POST /api/TenantInfo/ResetAdministrator | POST | 重置管理员(参数 tenantId) |
自身租户限制
刷新数据库密码、获取数据库连接信息、重新注册数据库、重置管理员等操作在前端会校验当前租户,不允许对当前登录租户自身执行。