このドキュメントでは、列暗号化ルールを作成するための構文、パラメータ、制限事項について詳しく説明し、実用的な例を用いて列暗号化ルールの設定方法を迅速に習得できるようにします。
前提条件
列暗号化ルールを作成する前に、キーマネージャーを設定してマスターキーを取得する必要があります。
-- 透過的テーブル領域暗号化の方式をinternalまたはobcloudに設定
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 | すべての保護された列を確認します。 |