このドキュメントでは、列暗号化ルールを作成するための構文、パラメータ、制限事項について詳しく説明します。また、実用的な例を用いて、列暗号化ルールの設定方法をすぐにマスターできるようにします。
前提条件
機密ルールを使用する前に、TDE(透過的データ暗号化)機能を有効にし、マスター鍵を作成する必要があります。
-- 透過的テーブル領域暗号化の方式をinternalまたはobcloudに設定します。
ALTER SYSTEM SET tde_method = '<encryption_method>';
ALTER INSTANCE ROTATE INNODB MASTER KEY; -- 最初の実行時は、鍵が有効になるまで約20秒待機する必要があります。
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)、db2.tbl3(e,f)を保護します。
-- パラメータを指定しない場合、デフォルトの暗号化アルゴリズムAES-256-ECBが使用され、USING ENCRYPTION = 'aes-256'と同等です。
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';
削除
DROP SENSITIVE RULE r1;
変更
-- 機密ルール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';
関連ドキュメント
- 列暗号化機能の概要
- 列暗号化権限管理
- 機密レベルルールの定義とそのプロパティを確認するには、DBA/CDB_OB_SENSITIVE_RULESを参照してください。