---
title: "CREATE TENANT - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: CREATE TENANT 描述 CREATE TENANT 语句用于创建用户租户。OceanBase 数据库仅支持创建用户租户，系统租户为集群创建时系统自动创建；Meta 租户是 OceanBase 数据库内部自管理的租户，每创建一个用户租户会创建一个对应的 Meta 租户，其生命周期与用户租户保持一致。 通过 C…
---
切换语言

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

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

# CREATE TENANT

更新时间：2026-06-14 19:40:37

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/100.system-tenants/800.create-tenant.md)  

## 描述

`CREATE TENANT` 语句用于创建用户租户。OceanBase 数据库仅支持创建用户租户，系统租户为集群创建时系统自动创建；Meta 租户是 OceanBase 数据库内部自管理的租户，每创建一个用户租户会创建一个对应的 Meta 租户，其生命周期与用户租户保持一致。

通过 `CREATE TENANT` 语句创建的租户，默认其租户角色为 `PRIMARY`。

## 使用限制及注意事项

- OceanBase 数据库支持两种类型的租户，MySQL 兼容模式和 Oracle 兼容模式。创建租户时，需要指定合适的租户的类型。租户创建后，租户类型无法修改。
 - 创建租户时需要为租户分配资源池，需要提前做好资源规划并创建好资源池，创建资源池的相关操作请参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)。

## 权限要求

仅 `sys` 租户的 `root` 用户（`root@sys`）可以创建租户，其他租户不支持创建租户。

## 语法

创建租户的语法如下：

```sql
CREATE TENANT [IF NOT EXISTS] tenant_name [tenant_option_list] [set_sys_var];

tenant_option_list:
    tenant_option [, tenant_option...]

tenant_option:
      LOCALITY [=] 'locality_description'
    | PRIMARY_ZONE [=] primary_zone_name
    | RESOURCE_POOL_LIST [=] (pool_name [, pool_name...])
    | ENABLE_ARBITRATION_SERVICE [=] {True | False}
    | {CHARACTER SET | CHARSET} [=] charset_name
    | COLLATE [=] collation_name
    | COMMENT [=] 'string'

set_sys_var:
    {SET | SET VARIABLES | VARIABLES} var_name {TO | =} var_value [,var_name {TO | =} var_value...]

```

## 参数说明

| 参数 | 描述 |
| --- | --- |
| tenant_name | 指定租户名。最长 63 个字节，只能为大小写英文字母，数字和下划线，而且必须以字母或下划线开头，并且不能是 OceanBase 数据库的关键字。 |
| IF NOT EXISTS | 如果要创建的租户名已存在，并且没有指定 `IF NOT EXISTS`，则会报错。 |
| LOCALITY | 描述副本在 Zone 间的分布情况。当前版本支持的副本类型如下：   - 全能型副本：名称为 FULL，简称 F。有关全能型副本的详细介绍，参见 [全能型副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685947)。 - 只读型副本：名称 READONLY，简称 R。有关只读型副本的详细介绍，参见 [只读型副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685948)。 - 列存副本：名称为 COLUMNSTORE，简称 C。有关列存副本的详细介绍，参见 [列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685950)。     示例：`LOCALITY = 'F@z1,F@z2,F@z3'`、`LOCALITY = 'F@z1,R@z2,C@z3'`、`LOCALITY = 'F@z1,R@z2,COLUMNSTORE@z3'` |
| PRIMARY_ZONE | 指定租户所在的 Primary Zone。主要支持以下取值：   - `RANDOM`：指定租户的 Primary Zone 为租户所在的所有 Zone，表示租户所在的所有 Zone 具有相同的优先级。 - zone_name：指定租户的 Primary Zone 为具体的某个 Zone。     如果创建租户时未指定 Primary Zone，则默认取值为 `RANDOM`。 |
| RESOURCE_POOL_LIST | 指定分配给租户的资源池列表，创建租户时必须指定该参数。   如果有多个资源池，要求多个资源池的 `UNIT_NUM` 个数一致。   #### 注意    同一个租户的多个资源池，其对应的 `ZONE_LIST` 相互之间不允许有交集。 |
| ENABLE_ARBITRATION_SERVICE | 指定租户是否开启仲裁服务，如果不指定，默认值为 `False`。对于集群中有仲裁服务的场景，如果创建租户时未开启仲裁服务，可以在创建租户后再开启仲裁服务，详细操作请参见 [为租户开启仲裁服务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682321)。 |
| CHARACTER SET \| CHARSET | 指定租户级的字符集，有关字符集的详细介绍，请参见 [字符集（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687425) 和 [字符集（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686339)。 |
| COLLATE | 创建 MySQL 兼容模式的租户时，指定租户级的字符序。有关 MySQL 模式下字符序的详细介绍，参见 [字符序（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687422)。   #### 说明    创建 Oracle 兼容模式的租户时，不支持设置租户级字符序。如果设置了字符序，语法上不会报错，但设置并不会生效，系统会将其覆盖为字符集对应的默认字符序。 |
| set_sys_var | 指定租户级的系统变量值。有关 `var_name` 的详细介绍可参见下文 [var_name](#var_name)。 |
| COMMENT | 填写注释，可选。 |

### var_name

`var_name` 常用取值如下：

- `ob_compatibility_mode`：用于指定租户的兼容模式（可选 MySQL 或 Oracle 模式），而且只能在创建时指定；如果不指定 `ob_compatibility_mode`，则默认兼容模式为 MySQL。
 - `ob_tcp_invited_nodes`：用于指定租户连接的白名单，即允许哪些客户端 IP 连接该租户。示例中 `%` 表示所有客户端都可登录，如果不指定 `ob_tcp_invited_nodes` 的值，则默认租户的连接方式为仅允许本机的 IP 登录该租户。
 - `lower_case_table_names`：用于控制大小写敏感，仅支持使用 `CREATE TENANT` 语句创建租户时指定并只在 MySQL 模式下生效，租户创建后不能通过 SQL 语句修改。
 - `ob_compatibility_control`：用于控制存在 MySQL 兼容行为冲突的功能表现为何种行为。当前取值 `MYSQL5.7` 和 `MYSQL8.0`，表示与 MySQL 5.7 的行为保持一致还是与 MySQL 8.0 的行为保持一致。创建 MySQL 模式的租户时，需要指定该变量，并且只能在创建时指定，租户创建后不允许修改。如果不显式指定 `ob_compatibility_control`，则默认其兼容行为与 MySQL 5.7 保持一致。
 - `read_only`：指定租户为只读模式还是读写模式，如果不设置，默认为读写模式。

## 示例

- 创建一个名为 `test_tenant` 的 MySQL 兼容模式的租户，Primary Zone 为 `zone1;zone2,zone3`，资源池为 `pool1`，字符集为 `utf8mb4`，允许所有客户端 IP 连接数据库。

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

  ```
 - 创建一个名为 `tenant_c` 的 MySQL 兼容模式的租户，Locality 为 `F@zone1,F@zone2,C@zone3`，Primary Zone 为 `zone1;zone2,zone3`，资源池为 `pool1`，允许所有客户端 IP 连接数据库。

  #### 注意

  创建了包含列存副本的租户后，如果要访问列存副本，需要额外部署 ODP，并进行一系列配置才能将连接路由到列存副本，有关列存副本的详细使用说明，参见 [列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685950)。

  ```shell
  obclient [oceanbase]> CREATE TENANT tenant_c LOCALITY = 'F@zone1,F@zone2,C@zone3', primary_zone='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') SET ob_tcp_invited_nodes = '%';

  ```
 - 创建一个名为 `tenant1` 的 Oracle 兼容模式的租户，Primary Zone 为 `zone1`，资源池为 `pool1`，允许所有客户端 IP 连接数据库。

  ```sql
  obclient [oceanbase]>  CREATE TENANT tenant1 PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('pool1') SET ob_compatibility_mode='oracle',  ob_tcp_invited_nodes='%';

  ```

## 相关文档

- [租户介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682005)
 - [用户租户介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682003)
 - [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682466)

 上一篇 下一篇 ![有帮助](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) 咨询热线
