このドキュメントでは、列暗号化ルールを作成するための構文、パラメータ、制限事項について詳しく説明し、実用的な例を提供して、列暗号化ルールの設定方法を迅速に習得できるよう支援します。
注意
この機能はMySQLテナントモードにのみ適用されます。
準備作業
機密ルールを使用する前に、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)を保護します。
-- デフォルトの暗号化アルゴリズムを使用します
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参照してください。