首批通过分布式安全可靠测评,为关键业务系统打造
CREATE SENSITIVE RULE
更新时间:2026-04-07 20:57:20
描述
该语句用来创建敏感数据保护规则。
说明
对于 OceanBase 数据库 V4.3.5 版本,从 V4.3.5 BP3 开始支持该语句。
权限要求
执行 CREATE SENSITIVE RULE 语句,需要当前用户拥有 CREATE SENSITIVE RULE 权限。更多有关 OceanBase 数据库权限的详细介绍,请参见 MySQL 模式下的权限分类。
语法
CREATE SENSITIVE RULE <rule_name>
ON <sensitive_field_list>
USING ENCRYPTION [ = <encryption_method>]
;
参数说明
具体参数说明如下:
| 参数 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| rule_name | 字符 | 加密规则的名称,在租户内唯一。 | |
| sensitive_field_list | 字符 | 表示要加密的列,格式为 db.table(col1, col2), db2.table2(col3, col4), ...,也即每一个敏感项指明表上的一个或多个列,每个列之间以逗号隔开。各个敏感项之间用逗号隔开。db 可以为空,默认使用当前连接的数据库。 |
|
| encryption_method | 字符 | USING ENCRYPTION 可以不接参数,表示使用默认加密算法,默认是 aes-256,也可以写成 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, 保护 tbl1(a), tbl2(b, c), db2.tbl3(e,f);
-- 使用默认加密算法
CREATE SENSITIVE RULE r1 ON tbl1(a), tbl2(b, c), db2.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';