基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
生成租户主密钥(Oracle 模式)
更新时间:2026-07-15 20:42:45
本文介绍如何在 Oracle 模式租户中生成租户主密钥。生成完成后,可以使用透明数据加密(TDE)功能。
功能适用性
OceanBase 数据库社区版暂不支持租户主密钥相关功能。
前提条件
- 已创建 Oracle 模式租户。
- 使用管理员用户登录到租户。
生成主密钥
配置项 tde_method 用于设置主密钥存储方式,默认为 none,表示关闭加密,设置任意非 none 值均可使用透明数据加密功能。本文给出 internal 和 obcloud 两种方式的示例,两种方式的步骤不同,请根据实际需求选择其一。更多配置项 tde_method 的参数说明,参见 tde_method。
注意
tde_method 一旦设置为非 none 值,就不能再修改。tde_method 中的 obcloud 选项从 V4.3.5 BP2 版本开始引入。internal 方式示例
internal 方式的存储主密钥,其加密信息主要在内部表中管理。为了避免日志回放时的循环依赖,该模式中的 clog 不做加密。具体步骤如下:
执行以下语句,开启
internal方式的加密。ALTER SYSTEM SET tde_method='internal';执行以下语句,确认该租户上所有 OBServer 节点上的配置项
tde_method的值均为internal。SHOW PARAMETERS LIKE 'tde_method';创建 Keystore。
-- 将 Keystore 名称和密码替换为实际的值 ADMINISTER KEY MANAGEMENT CREATE KEYSTORE keystore_name IDENTIFIED BY password;开启 Keystore。
-- password 为上一步设置的 Keystore 的密钥 ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;执行以下语句,生成主密钥。
-- password 为上一步设置的 Keystore 的密钥 ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password;
obcloud 方式示例
以下为 obcloud 方式的示例,如需使用外部 KMS 服务,可将 tde_method 设置为 obcloud 或 bkmi,并配置 external_kms_info。
执行以下语句,开启
obcloud方式的加密。ALTER SYSTEM SET tde_method='obcloud';执行以下语句,确认该租户上所有 OBServer 节点上的配置项
tde_method的值均为obcloud。注意
仅当租户上所有 OBServer 节点上的配置项 tde_method 的值均为 obcloud,该语句才能执行成功。
SHOW PARAMETERS LIKE 'tde_method';执行以下语句,配置密钥管理信息。
更多配置项
external_kms_info的说明信息,参见 external_kms_info。-- 示例仅作为参考,请根据实际的密钥管理信息替换 ALTER SYSTEM SET external_kms_info='{ "KMS_HOST": "kms.ob.com:443", "ROOT_CERT": "******", "PRIVATE_KEY": "******", "PRIVATE_KEY_PHRASE": "ob2025", "SCENE": "ANT", "KEY_NAME": "ob_cluster_key", "CALLER": "oceanbase_admin"}';配置完成后,租户将从配置的 KMS 获取主密钥,无需像
internal方式那样手动创建 Keystore 和生成主密钥。在
obcloud方式下,主密钥由 OCP 或 OceanBase Cloud KMS 生成和托管。数据库通过external_kms_info配置信息连接 KMS,并按需获取主密钥。密钥的创建、存储和轮转均在 KMS 侧完成,因此不需要在数据库内创建 Keystore 或执行生成主密钥的操作。
轮转主密钥
为了提高安全性,建议定期轮转主密钥。轮转主密钥后,新的数据将使用新密钥加密,旧数据仍可使用旧密钥解密。
- internal 方式:执行以下语句轮转主密钥:
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password; - obcloud 方式:主密钥由 OCP 或 OceanBase Cloud KMS 管理,具体请参见 OCP-管理 TDE 透明加密 或 云厂商账号授权。
后续步骤
生成主密钥后,您可以使用透明数据加密(TDE):参见 为新创建的表设置透明加密