首批通过分布式安全可靠测评,为关键业务系统打造
创建列加密规则
更新时间:2026-06-05 13:32:41
本文档将详细介绍创建列加密规则的语法、参数及限制说明,并为你提供实用的示例,帮助你快速掌握列加密规则的配置方法。
准备工作
在创建列加密规则前,需要配置密钥获取方式,获取主密钥:
-- 设置透明表空间加密的方式,取值参见 tde_method(如 internal、obcloud、ocp 等)
ALTER SYSTEM SET tde_method = '<encryption_method>';
-- 创建 Keystore
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE keystore_name IDENTIFIED BY oceanbase_password;
-- 开启 Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY oceanbase_password;
-- 设置主密钥,首次执行需要等待 20 秒使主密钥生效
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY oceanbase_password;
tde_method 参数具体说明请参见 tde_method。
语法
在开始创建列加密规则之前,需先了解相关的语法结构。OceanBase 提供了完整的 DDL 语句来管理列加密规则,包括创建、删除和修改操作。
创建列加密规则
CREATE SENSITIVE RULE <rule_name>
ON <sensitive_field_list>
USING ENCRYPTION [ = <encryption_method>];
详细说明请参见 CREATE SENSITIVE RULE。
删除列加密规则
当您需要移除某个列加密规则时,可以使用以下语法:
DROP SENSITIVE RULE <rule_name>;
详细说明请参见 DROP SENSITIVE RULE。
修改列加密规则
在实际使用过程中,您可能需要根据业务需求调整列加密规则。OceanBase 提供了灵活的修改语法来满足这些需求:
-- 新增敏感列
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。
示例
通过以下具体示例可以加深对列加密规则操作的理解。这些示例涵盖了创建、删除和修改规则的主要场景。
创建
-- 创建敏感规则 r1, 保护 tbl1(a), tbl2(b, c), user2.tbl3(e,f);
-- 不加参数时使用默认加密算法 AES-256-ECB,等价于 USING ENCRYPTION = 'aes-256'
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 r1;
修改
-- 向敏感规则 r1 中增加 tbl2(c), user2.tbl3(x);
ALTER SENSITIVE RULE r1 ADD COLUMN tbl2(c), user2.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';
查看
| 视图名称 | 说明 |
|---|---|
| DBA_OB_SENSITIVE_RULES | 查看所有敏感规则的定义及其属性。 |
| DBA_OB_SENSITIVE_COLUMNS | 查看所有受保护的列。 |