説明
このステートメントは、機密データ保護ルールを作成するために使用されます。
説明
OceanBaseデータベースV4.3.5では、V4.3.5 BP3以降でこのステートメントがサポートされています。
権限要件
CREATE SENSITIVE RULE ステートメントを実行するには、現在のユーザーが CREATE SENSITIVE RULE 権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。
構文
CREATE SENSITIVE RULE <rule_name>
ON <sensitive_field_list>
USING ENCRYPTION [ = <encryption_method>]
;
パラメータの説明
具体的なパラメータの説明は以下のとおりです:
| パラメータ | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
| rule_name | 文字列 | 暗号化ルールの名前で、テナント内で一意です。 | |
| sensitive_field_list | 文字列 | 暗号化対象の列を示します。書式は db.table(col1, col2), db2.table2(col3, col4), ... となります。つまり、各機密項目はテーブル上の1つまたは複数の列を指定し、各列はカンマで区切られます。各機密項目間もカンマで区切ります。db は省略可能で、デフォルトでは現在接続しているデータベースが使用されます。 |
|
| encryption_method | 文字列 | USING ENCRYPTION にパラメータを付けない場合、デフォルトの暗号化アルゴリズムを使用することを意味します。デフォルトは aes-256 です。また、USING ENCRYPTION = DEFAULT と記述することもでき、その意味は同じです。 |
encryption_method の許容値は次のとおりです:
| 値(SQL構文で使用される) | 実際に使用される暗号アルゴリズム | キー長 | モード | 説明 |
|---|---|---|---|---|
| aes-256 | AES-256-ECB | 256ビット | ECB | デフォルトのアルゴリズム |
| aes-128 | AES-128-ECB | 128ビット | ECB | 互換性が高い |
| aes-192 | AES-192-ECB | 192ビット | ECB | 中程度のセキュリティレベル |
| aes-128-gcm | AES-128-GCM | 128ビット | GCM | 認証と暗号化を提供 |
| aes-256-gcm | AES-256-GCM | 256ビット | GCM | 高いセキュリティレベル、認証と暗号化を提供 |
| sm4-cbc | SM4-CBC | CBC | 高いセキュリティレベル | |
| sm4-GCM | SM4-GCM | GCM | 高いセキュリティレベル |
制限事項は以下のとおりです:
- データ保護ルールは、ユーザーテーブル(ビューを含む)の列にのみ適用できます。システムテーブルの列には適用できません。
- ルール名はテナントレベルでグローバルに一意です。
- 1つのルールで1列または複数の列を保護できます。データベース間やテーブル間での適用も可能です。
- 1つの列は1つのルールによってのみ保護されます。
例
例:
-- 機密ルール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';