---
title: "创建列加密规则 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 创建列加密规则 本文档将详细介绍创建列加密规则的语法、参数及限制说明，并为你提供实用的示例，帮助你快速掌握列加密规则的配置方法。 准备工作 在使用敏感规则之前，需要开启 TDE 加密功能，并创建主密钥： -- 设置透明表空间加密的方式，取值参见 tde_method（如 internal、obcloud、ocp 等）…
---
切换语言

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

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

# 创建列加密规则

更新时间：2026-06-01 14:21:55

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/500.security-and-permissions/500.data-encryption/500.column-encryption/200.column-encryption-of-mysql-mode/200.create-column-encryption-rule-of-mysql-mode.md)  

本文档将详细介绍创建列加密规则的语法、参数及限制说明，并为你提供实用的示例，帮助你快速掌握列加密规则的配置方法。

## 准备工作

在使用敏感规则之前，需要开启 TDE 加密功能，并创建主密钥：

```sql
-- 设置透明表空间加密的方式，取值参见 tde_method（如 internal、obcloud、ocp 等）
ALTER SYSTEM SET tde_method = '<encryption_method>';
ALTER INSTANCE ROTATE INNODB MASTER KEY;	-- 首次执行需要等待约 20 秒使秘钥生效

```

`tde_method` 参数具体说明请参见 [tde_method](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685459)。

## 语法

在开始创建列加密规则之前，需先了解相关的语法结构。OceanBase 提供了完整的 DDL 语句来管理列加密规则，包括创建、删除和修改操作。

### 创建列加密规则

```sql
CREATE SENSITIVE RULE <rule_name>
ON <sensitive_field_list>
USING ENCRYPTION [ = <encryption_method>];

```

详细说明请参见 [CREATE SENSITIVE RULE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686111)。

### 删除列加密规则

当您需要移除某个列加密规则时，可以使用以下语法：

```sql
DROP SENSITIVE RULE <rule_name>;

```

详细说明请参见 [DROP SENSITIVE RULE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686096)。

### 修改列加密规则

在实际使用过程中，您可能需要根据业务需求调整列加密规则。OceanBase 提供了灵活的修改语法来满足这些需求：

```sql
-- 新增敏感列
ALTER SENSITIVE RULE <rule_name> ADD COLUMN <sensitive_field_list>;
-- 删除敏感列
ALTER SENSITIVE RULE <rule_name> DROP COLUMN <sensitive_field_list>;
-- 启用规则
ALTER SENSITIVE RULE <rule_name> ENABLE;
-- 禁用规则
ALTER SENSITIVE RULE <rule_name> DISABLE;
-- 修改加密算法
ALTER SENSITIVE RULE <rule_name> USING ENCRYPTION [= <encryption_method>];

```

详细说明请参见 [ALTER SENSITIVE RULE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686154)。

## 示例

通过以下具体示例可以加深对列加密规则操作的理解。这些示例涵盖了创建、删除和修改规则的主要场景。

### 创建

```sql
-- 创建敏感规则 r1, 保护 tbl1(a), tbl2(b, c), db2.tbl3(e,f);
-- 不加参数时使用默认加密算法 AES-256-ECB，等价于 USING ENCRYPTION = 'aes-256'
CREATE SENSITIVE RULE r1 on tbl1(a), tbl2(b, c), db2.tbl3(e,f)
USING ENCRYPTION;

```

```sql
-- 创建敏感规则 r2, 保护 tbl4(x, y), tbl5(z);
-- 使用 SM4-CBC 加密算法
CREATE SENSITIVE RULE r2 on tbl4(x, y), tbl5(z)
USING ENCRYPTION = 'sm4-cbc';

```

### 删除

```sql
DROP SENSITIVE RULE r1;

```

### 修改

```sql
-- 向敏感规则 r1 中增加 tbl2(c), db2.tbl3(x);
ALTER SENSITIVE RULE r1 ADD COLUMN tbl2(c), db2.tbl3(x);

-- 从敏感规则 r1 中删除 tbl2(c)
ALTER SENSITIVE RULE r1 DROP COLUMN tbl2(c);

-- 启用敏感规则 r1
ALTER SENSITIVE RULE r1 ENABLE;

-- 禁用敏感规则 r1
ALTER SENSITIVE RULE r1 DISABLE;

-- 修改敏感规则 r1 的加密算法为默认算法
ALTER SENSITIVE RULE r1 USING ENCRYPTION;

-- 修改敏感规则 r1 的加密算法为 sm4-cbc
ALTER SENSITIVE RULE r1 USING ENCRYPTION = 'sm4-cbc';

```

## 相关文档

- [列加密功能概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682903)
 - [列加密权限管理](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685782)
 - 查看敏感级规则的定义及其属性，请参见[DBA/CDB_OB_SENSITIVE_RULES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684741)

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