メインコンテンツへスキップ
マスキングポリシーを作成します。これにより、特定のユーザーまたはロールがテーブルをクエリする際に、カラムの値を動的に変換またはマスクできます。
マスキングポリシーは、保存済みのデータを変更することなく、クエリ時に機密データを変換することで、カラムレベルのデータセキュリティを実現します。
構文:

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 句

1 人のユーザーに対して複数のマスキングポリシーが同じカラムを対象とする場合、PRIORITY 句によって適用順序が決まります。ポリシーは、優先度の高いものから低いものの順に適用されます。 デフォルトの優先度は 0 です。同じ優先度のポリシーは、適用順序が定義されていません。 例:
パフォーマンスに関する注意点
  • マスキングポリシーは、式の複雑さによってはクエリのパフォーマンスに影響する場合があります
  • マスキングポリシーが有効なテーブルでは、一部の最適化が無効になる場合があります
最終更新日 2026年7月3日