---
title: "CREATE SENSITIVE RULE - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: CREATE SENSITIVE RULE 描述 该语句用来创建敏感数据保护规则。 权限要求 执行 CREATE SENSITIVE RULE 语句，需要当前用户拥有 CREATE SENSITIVE RULE 权限。更多有关 OceanBase 数据库权限的详细介绍，请参见 Oracle 模式下的权限分类 。 语法…
---
切换语言

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

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

# CREATE SENSITIVE RULE

更新时间：2026-05-31 18:10:42

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/100.ddl-of-oracle-mode/2150.create-sensitive-rule-of-oracle-mode.md)  

## 描述

该语句用来创建敏感数据保护规则。

## 权限要求

执行 `CREATE SENSITIVE RULE` 语句，需要当前用户拥有 `CREATE SENSITIVE RULE` 权限。更多有关 OceanBase 数据库权限的详细介绍，请参见 [Oracle 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685764)。

## 语法

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

```

## 参数说明

具体参数说明如下：

| 参数 | 数据类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| rule_name | 字符 |  | 加密规则的名称，在租户内唯一。 |
| sensitive_field_list | 字符 |  | 表示要加密的列，格式为 `user.table(col1, col2), user2.table2(col3, col4), ...`，也即每一个敏感项指明表上的一个或多个列，每个列之间以逗号隔开。各个敏感项之间用逗号隔开，指定敏感规则保护的列，一条规则可以指定多个用户、多张表上的多个列。参数说明：   - `user` 可以为空，默认使用当前连接的用户。 - `table` 不可为空，不可使用 `*`。 - `(col_list)` 不可为空，不可使用 `*`。 |
| encryption_method | 字符 |  | `USING ENCRYPTION` 可以不接参数，表示使用默认加密算法，默认是 `aes-256`，实际指的是 AES-256-ECB 加密算法，也可以写成 `USING ENCRYPTION = DEFAULT`，含义相同。 |

`encryption_method` 允许的取值如下：

| 取值（在 SQL 语法中使用） | 实际使用的加密算法 | 密钥长度 | 模式 | 说明 |
| --- | --- | --- | --- | --- |
| aes-256 | AES-256-ECB | 256 位 | ECB | 默认算法 |
| aes-128 | AES-128-ECB | 128 位 | ECB | |
| aes-192 | AES-192-ECB | 192 位 | ECB | |
| aes-128-gcm | AES-128-GCM | 128 位 | GCM | 高安全级别，提供认证加密（AEAD） |
| aes-192-gcm | AES-192-GCM | 192 位 | GCM | 高安全级别，提供认证加密（AEAD） |
| aes-256-gcm | AES-256-GCM | 256 位 | GCM | 高安全级别，提供认证加密（AEAD） |
| sm4-cbc | SM4-CBC |  | CBC | 高安全级别 |
| sm4-GCM | SM4-GCM |  | GCM | 高安全级别，提供认证加密（AEAD） |

创建敏感规则时，需要了解以下注意事项：

- 规则创建后立即生效。
 - 规则名称是租户级全局唯一的，但是仅针对敏感规则全局唯一，而不是对象级全局唯一。也即，可以同时存在一个名为 `R1` 的表和一个名为 `R1` 的敏感规则，但不能同时存在两个名为 `R1` 的敏感规则。
 - 在 Oracle 模式下，规则名称默认以大写形式存储。如果需要区分大小写，可以使用双引号括起名称标识符。被双引号包裹的规则名称会严格区分大小写，例如 `R1` 与 `"r1"` 会被视为两个不同的规则，两者可以同时存在。
 - 敏感规则的数据保护力度只有**列级**，没有表级或数据库级。即不允许创建全表或全数据库上的数据保护规则。如果需要对表上的所有列做加密，需要显式写出所有的列名。
 - 一条规则可以指定保护一个或多个列。允许跨库跨表。

创建敏感规则时，需要遵守以下限制：

- 只能对用户表（包括视图）上的列施加数据保护规则。不能对系统表上的列施加数据保护规则。
 - 一个列只能被一条规则所保护。

## 示例

示例如下：

```sql
-- 创建敏感规则 r1, 保护 tbl1(a), tbl2(b, c), user2.tbl3(e,f);
-- 使用默认加密算法 AES-256-ECB
CREATE SENSITIVE RULE r1 ON tbl1(a), tbl2(b, c), user2.tbl3(e,f)
USING ENCRYPTION;

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

```

- [DROP SENSITIVE RULE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687521)
 - [ALTER SENSITIVE RULE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687575)

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