UPDATE 句
UPDATE 句では、マスクするカラムとその変換方法を指定します。1 つのポリシーで複数のカラムをマスクできます。
例:
- シンプルなマスキング:
UPDATE email = '***masked***' - 部分的なマスキング:
UPDATE email = concat(substring(email, 1, 3), '***@***.***') - ハッシュベースのマスキング:
UPDATE email = concat('masked_', substring(hex(cityHash64(email)), 1, 8)) - 複数カラム:
UPDATE email = '***@***.***', phone = '***-***-****'
WHERE句
WHERE句を使うと、行の値に基づく条件付きマスキングを適用できます。条件に一致する行にのみマスキングが適用されます。
例:
TO 句
TO 句では、ポリシーを適用するユーザーとロールを指定します。
TO user1, user2: 特定のユーザー/ロールに適用しますTO ALL: すべてのユーザーに適用しますTO ALL EXCEPT user1, user2: 指定したユーザーを除くすべてのユーザーに適用します
行ポリシーとは異なり、マスキングポリシーは、ポリシーが適用されていないユーザーには影響しません。ユーザーに適用されるマスキングポリシーが存在しない場合、そのユーザーには元のデータが表示されます。
PRIORITY 句
PRIORITY 句によって適用順序が決まります。ポリシーは、優先度の高いものから低いものの順に適用されます。
デフォルトの優先度は 0 です。同じ優先度のポリシーは、適用順序が定義されていません。
例:
パフォーマンスに関する注意点
- マスキングポリシーは、式の複雑さによってはクエリのパフォーマンスに影響する場合があります
- マスキングポリシーが有効なテーブルでは、一部の最適化が無効になる場合があります