---
title: "新建租户 | OceanBase 文档中心"
description: "新建租户 您可以通过 SQL 语句、OCP 或 OBD 来新建租户。 简介 在 OceanBase 数据库中可以通过以下三种方式新建租户: 通过 SQL 语句新建租户 通过 OCP 新建租户 通过 OBD 新建租户 注意 新建租户后默认密码为空，需修改租户密码，以保证数据安全。 通过 SQL 语句新建租户 Ocean…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.1.5 社区版

# 新建租户

更新时间：2026-06-02 15:16:16

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V3.1.5/zh-CN/100.users-guide/600.basic-database-management/400.manage-tenants/200.create-a-tenant.md)  

您可以通过 SQL 语句、OCP 或 OBD 来新建租户。

## 简介

在 OceanBase 数据库中可以通过以下三种方式新建租户:

- **通过 SQL 语句新建租户**
 - **通过 OCP 新建租户**
 - **通过 OBD 新建租户**

> **注意**
>
>  
>
> 新建租户后默认密码为空，需修改租户密码，以保证数据安全。

## 通过 SQL 语句新建租户

OceanBase 数据库仅支持一种租户： MySQL 租户。只有 `root` 用户连接到 `sys` 租户（`root@sys`）才能执行 `CREATE TENANT` 命令去创建租户。

## 创建租户的语法

创建租户的 SQL 语法如下：

```sql
CREATE TENANT [IF NOT EXISTS] tenant_name
     [tenant_characteristic_list] [opt_set_sys_var];

tenant_characteristic_list:
  tenant_characteristic [, tenant_characteristic...]

tenant_characteristic:
      COMMENT 'string'  
    | {CHARACTER SET | CHARSET} [=] charsetname
    | COLLATE [=]  collationname
    | ZONE_LIST [=] (zone [, zone...])
    | PRIMARY_ZONE [=] zone  
    | DEFAULT TABLEGROUP [=] {NULL | tablegroup}
    | RESOURCE_POOL_LIST [=](poolname [, poolname...])
    | LOCALITY [=] 'locality description'

opt_set_sys_var:
  {SET | SET VARIABLES | VARIABLES} system_var_name = expr [,system_var_name = expr] ...

```

语法中参数说明如下表所示。

| 参数 | 描述 |
| --- | --- |
| IF NOT EXISTS | 可选参数，如果要创建的租户名已存在，并且没有指定 `IF NOT EXISTS`，则会出现错误。 |
| tenant_name | 租户名的合法性和变量名一致，最长 128 个字符，字符只能是大小写英文字母、数字和下划线，而且必须以字母或下划线开头，并且不能是 OceanBase 数据库的关键字。 OceanBase 数据库中所支持的关键字请参见 [预留关键字](https://www.oceanbase.com/docs/community-observer-cn-10000000001878952)。 |
| RESOURCE_POOL_LIST | 创建租户时的必填项，创建租户时仅支持分配一个资源池。   如果需要为租户添加多个资源池，则可以待租户创建成功后通过修改租户资源池的方式再进行添加。修改租户资源池的相关操作，请参见 [将资源池分配给租户](https://www.oceanbase.com/docs/community-observer-cn-10000000001880298)。   > **注意** 在分配资源池时，普通租户的内存的最小规格必须大于等于 5 GB，否则租户会创建失败。如果您希望创建一个租户进行非常简单的功能测试，可以修改参数 `alter system __min_full_resource_pool_memory` 的值为 `1073741824` 来允许以最小 1 GB 内存的规格创建租户。 |
| DEFAULT TABLEGROUP | 用于指定租户默认的表组信息，`NULL` 表示取消默认表组。如果不指定，默认为 `NULL`。 |
| COMMENT | 指定对该租户的注释信息。 |
| CHARACTER SET \| CHARSET | 指定租户的字符集。 字符集相关的介绍信息请参见 [字符集](https://www.oceanbase.com/docs/community-observer-cn-10000000001880419)。 |
| COLLATE | 指定租户的字符序。 字符序相关的介绍信息请参见 [字符序](https://www.oceanbase.com/docs/community-observer-cn-10000000001880420)。 |
| ZONE_LIST | 指定租户的 Zone 列表。 |
| PRIMARY_ZONE | 指定租户的 Primary Zone。Primary Zone 表示 Leader 副本的偏好位置。指定 Primary Zone 实际上是指定了 Leader 更趋向于被调度到哪个 Zone 上。 Primary Zone 实际上是一个 Zone 的列表，列表中包含多个 Zone。当 Primary Zone 列表包含多个 Zone 时，使用分号（;）分隔的 Zone 具有从高到底的优先级；使用逗号（,）分隔的 Zone 具有相同优先级。例如，`primary_ zone =' zone1; zone2, zone3'` 表示该租户的表的分区 Leader 在 `zone1` 上， `zone1` 比 `zone2`、`zone3` 的优先级高，`zone2` 和 `zone3` 是同一优先级。   > **注意** 在指定 `PRIMARY_ZONE` 时，其值可以设置为 `RANDOM`（必须大写），表示指定租户所在的所有 Zone 作为 `PRIMARY_ZONE` 的第一优先级。 |
| LOCALITY | 指定副本在 Zone 间的分布情况。 例如：`F@z1,F@z2,F@z3,R@z4` 表示 `z1`、`z2`、`z3` 为全功能副本，`z4` 为只读副本。 |
| system_var_name | 可选，指定租户的系统变量值，其中：     变量 `ob_compatibility_mode` 用于指定租户的兼容模式，仅可选择 MySQL 模式，并且只能在创建时指定。如果不指定 `ob_compatibility_mode`，则默认兼容模式为 MySQL 模式。    变量 `ob_tcp_invited_nodes` 用于指定租户连接的白名单，即允许哪些客户端 IP 连接该租户。如果不调整 `ob_tcp_invited_nodes` 的值，则默认租户的连接方式为只允许本机的 IP 连接数据库。 您也可以待租户创建成功后再修改其白名单设置，修改白名单的具体操作请参见 [设置和查看租户白名单](https://www.oceanbase.com/docs/community-observer-cn-10000000001879736)。     OceanBase 数据库中，租户可设置的系统变量请参见 [系统变量](https://www.oceanbase.com/docs/community-observer-cn-10000000001879235)。 |

### 使用示例

- 创建名为 `test_tenant` 的一个 3 副本的租户。

  ```sql
  obclient> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4', ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') ;

  ```
 - 创建租户，并指定允许任何客户端 IP 连接该租户。

  ```sql
  obclient> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4',ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') SET ob_tcp_invited_nodes='%' ;

  ```

### 确认租户是否创建成功

创建租户后，您可以通过查询 `oceanbase.gv$tenant` 视图来确认租户是否创建成功。

1. 使用 `root` 用户登录到数据库的 `sys` 租户。
 2. 执行以下语句，查看当前集群中是否有新创建的租户。

   示例如下：

   ```sql
   obclient> SELECT * FROM oceanbase.gv$tenant;
   +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
   | tenant_id | tenant_name | zone_list | primary_zone | collation_type | info          | read_only | locality      |
   +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
   |         1 | sys         | zone1     | zone1        |              0 | system tenant |         0 | FULL{1}@zone1 |
   |      1001 | MySQL       | zone1     | zone1        |              0 |               |         0 | FULL{1}@zone1 |
   +-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
   2 rows in set

   ```

## 通过 OCP 新建租户

您可以通过 OCP 新建租户。新建租户有以下两种方式：

- 在租户页面创建租户。
 - 在指定集群的租户管理页面创建租户。

本节为您展示通过指定集群的租户管理页面创建租户的操作步骤。

### 前提条件

在创建租户前，请确认当前登录用户具备 **CLUSTER_MANAGER** 角色权限，如果当前用户没有该角色权限，请联系管理员为您添加相应角色，具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 **编辑用户** 。

### 操作步骤

1. 登录 OCP。
 2. 单击左侧导航栏的 **集群** 。
 3. 在 **集群列表** 区域选择待操作的集群并单击其集群名。
 4. 在显示的页面的左侧导航栏上，单击 **租户管理** 。
 5. 在页面右上角单击 **新建租户** 。

   ![10140956](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1657914361/p338584.png)
 6. 填写 **基础信息** 。

      1. 集群默认为当前集群。
      2. 请输入 **租户名称** 。租户名称支持英文大小写字母、数字和下划线，长度为 2~64 字符。
 7. 填写 **Zone 信息** 。

      1. 为 z1、z2 和 z3 设置副本类型、Unit 规格和 Unit 数量。

        集群选定后，页面会根据所选集群的 Zone 信息给出可配置的 Zone 列表；对于无需做副本分布的 Zone，可以通过最右侧的按钮删除该 Zone 条目。

             - 副本类型支持全功能型副本、只读型副本和日志型副本。
             - OCP 内置了一套 Unit 规格；另外也可以在下拉列表的最下方点击按钮新增自定义规格。
             - 指定该 Zone 下的 Unit 数量。需要注意的是，unit 数量不能超过该 Zone 下 server个数。

              ![09091452](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1360562361/p325168.png)
      2. 对 **Zone 优先级** 进行排序。同时选择多个 Zone 穿梭到右侧后，可设置为同一优先级。

        ![p168852](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4532941261/p275674.png)
 8. 填写 **基本设置** 。

      1. 设置 **管理员初始密码** 。支持随机生成。

        对于 MySQL 模式，其管理员账户为"root"。
      2. 设置 **租户模式** 。

        社区版 OCP 仅支持 MySQL 模式。
      3. 设置 **字符集** 。

        对于 MySQL 模式，可选字符集有：utf8mb4, binary, gbk, gb18030。缺省为utf8mb4。
      4. （可选）设置 **备注** 。
      5. 设置 **IP 地址白名单** 。

             - 此处可以指定该租户允许登录的客户端列表。如果不指定，默认配置为"%"，允许所有的客户端。自定义白名单列表时需要注意，OCP 机器地址以及所依赖的 OBProxy 地址必须在此名单中，否则 OCP 将无法管理此租户。

                     - 默认配置：所有 IP 都可访问。
                     - 自定义：设置 IP 白名单，白名单中的IP才能访问。
             - 白名单格式说明：

                     - IP地址，示例：10.10.10.10,10.10.10.11
                     - 子网/掩码，示例：10.10.10.0/24
                     - 模糊匹配，示例：10.10.10.% 或 10.10.10._
                     - 多种格式混合，示例：10.10.10.10,10.10.10.11,10.10.10.%,10.10.10._,10.10.10.0/24

              > **说明**
              >
              >  
              >
              > % 表示所有客户端都可以连接。

              ![08182039](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1360562361/p307023.png)
 9. 单击 **提交** 。

### 通过 OCP 确认租户是否创建成功

创建完成后，您可以通过以下操作确认租户是否创建成功。

1. 回到 **集群概览** 页面。
 2. 在 **集群列表** 区域，单击刚刚操作的集群名。
 3. 在显示的左侧导航栏上，单击 **租户管理** 。
 4. 在租户列表中查看是否有新创建的租户。

   如果有，则表示租户创建成功。

## 通过 OBD 新建租户

1. 登录到安装 OBD 的机器的操作用户下。
 2. 运行如下命令创建租户：

   ```bash
   obd cluster tenant create <deploy_name> [-n <tenant_name>] [flags]

   ```

   其中，`deploy_name` 为待创建租户的集群名，`tenant_name` 为待创建的租户名。

   该命令仅对 OceanBase 数据库有效。该命令会自动创建资源单元和资源池，用户不需要手动创建。详细信息请参考 [obd cluster tenant create](https://www.oceanbase.com/docs/community/obd-cn/V1.3.3/10000000000182177) 命令。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
