首批通过分布式安全可靠测评,为关键业务系统打造
ALTER SENSITIVE RULE
更新时间:2026-06-19 13:37:30
描述
该语句用来修改敏感数据保护规则。
权限要求
执行 ALTER SENSITIVE RULE 语句,需要当前用户拥有 CREATE SENSITIVE RULE 权限。更多有关 OceanBase 数据库权限的详细介绍,请参见 MySQL 模式下的权限分类。
语法
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 [ = { DEFAULT | encryption_method } ]
参数说明
具体参数说明如下:
| 参数 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| rule_name | 字符 | 敏感规则的名称,在租户内唯一。 | |
| sensitive_field_list | 字符 | 表示要加密的列,格式为 db.table(col1, col2), db2.table2(col3, col4), ...,也即每一个敏感项指明表上的一个或多个列,每个列之间以逗号隔开。各个敏感项之间用逗号隔开。db 可以为空,默认使用当前连接的数据库。 |
|
| encryption_method | 字符 | 加密方法。默认值为 aes-256,实际指的是 AES-256-ECB 加密算法,取值范围见下文。 |
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) |
限制如下:
ADD/DROP COLUMN的参数sensitive_field_list和CREATE SENSITIVE RULE语法中该字段一致。ADD COLUMN添加的列不能被任何已存在的规则所保护。DROP COLUMN删除的列必须是指定的规则所保护的列。DISABLE会临时禁用当前敏感规则,但不会将它删除(规则创建后默认是启用的状态)。
示例
示例如下:
-- 向敏感规则 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';