---
title: "CREATE TABLESPACE - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: "CREATE TABLESPACE 描述 该语句用来创建 TableSpace（表空间）逻辑对象，TableSpace 属性支持加密。 语法 创建加密表空间。 CREATE TABLESPACE tablespace_name [ENCRYPTION [=] &#x27;tablespace_encryption_option…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# CREATE TABLESPACE

更新时间：2024-11-11 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/2750.create-tablespace-of-mysql-mode.md)  

## 描述

该语句用来创建 TableSpace（表空间）逻辑对象，TableSpace 属性支持加密。

## 语法

- 创建加密表空间。

  ```sql
  CREATE TABLESPACE tablespace_name [ENCRYPTION [=] 'tablespace_encryption_option'];

  tablespace_encryption_option:
      N
      | Y
      | AES-256
      | AES-256-GCM
      | AES-128
      | AES-128-GCM
      | AES-192
      | AES-192-GCM
      | SM4-CBC
      | SM4-GCM

  ```
 - 创建表空间。

  ```sql
    CREATE TABLESPACE tablespace_name
    [ADD DATAFILE 'file_name']
    [FILE_BLOCK_SIZE = value]
    USE LOGFILE GROUP logfile_group
    [EXTENT_SIZE [=] extent_size]
    [INITIAL_SIZE [=] initial_size]
    [AUTOEXTEND_SIZE [=] autoextend_size]
    [MAX_SIZE [=] max_size]
    [NODEGROUP [=] nodegroup_id]
    [WAIT]
    [COMMENT [=] 'string']
    [ENGINE [=] engine_name]

  ```

  #### 注意

  仅支持该关键字语法，功能不生效。该语法关键字不能与 `ENCRYPTION` 一同执行，否则语法会报错。

## 参数说明

| 参数 | 描述 |
| --- | --- |
| tablespace_name | 指定要创建的 TableSpace 对象名称。 |
| ENCRYPTION | 可选项，指定加密所使用的关键字，用于指定 TableSpace 所使用的加密算法。如果不通过关键字 `ENCRYPTION` 指定加密算法，则默认创建不加密的 TableSpace。加密算法的详细介绍，请参见下文 [tablespace_encryption_option](#tablespace_encryption_option)。 |

### tablespace_encryption_option

- `N`：表示不加密。
 - `Y`：如果使用 `Y`，则表示默认使用 `AES-256`。
 - `AES-256`：使用 256 位密钥进行加密和解密。
 - `AES-256-GCM`：使用 256 位密钥的 GCM 模式。
 - `AES-128`：使用 128 位密钥进行加密和解密。
 - `AES-128-GCM`：使用 128 位密钥的 GCM 模式。
 - `AES-192`：使用 192 位密钥进行加密和解密。
 - `AES-192-GCM`：使用 192 位密钥的 GCM 模式。
 - `SM4-CBC`：SM4 算法采用 CBC 模式，其中每个数据块都与前一个块加密后的输出进行异或操作再进行加密。
 - `SM4-GCM`：SM4 算法采用 GCM 模式，此模式下 SM4 同时提供了数据加密和认证功能。

#### 说明

- AES (Advanced Encryption Standard) 是一个对称加密算法，意味着相同的密钥用于加密和解密数据。AES 算法本身是基于区块加密的，通常以 128 位的区块对数据进行加密。
 - AES-GCM (Galois/Counter Mode) 是一种操作模式，用于对区块加密算法（如 AES）进行处理，提供加密和数据认证（也称为消息认证码）。
 - SM4 算法的区块长度是 128 位，密钥长度也是 128 位。

## 示例

- 创建一个未加密的 TableSpace 对象。

  ```shell
  CREATE TABLESPACE tablespace001;

  ```
 - 创建一个使用透明数据加密 (TDE) 的 TableSpace 对象。

     1. 设置加密方式为内置的透明加密。

       ```shell
       ALTER SYSTEM SET tde_method = 'internal';

       ```
     2. 显示当前加密方式的配置。

       ```shell
       SHOW PARAMETERS LIKE 'tde_method';

       ```
     3. 生成新的主加密密钥。

       ```shell
       ALTER INSTANCE ROTATE INNODB MASTER KEY;

       ```

       #### 注意

       尽管该命令可执行，但如果磁盘空间已满，则生成新的主加密密钥将无法完成。
     4. 创建一个名为 `tablespace2` 的加密表空间，使用 `SM4-GCM` 加密算法。

       ```shell
       CREATE TABLESPACE tablespace002 ENCRYPTION = 'SM4-GCM';

       ```

## 相关文档

- [tde_method](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576146)
 - [为新创建的表设置透明加密](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574337)

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