カテゴリ:

システム関数

SYSTEM$GET_TAG_ON_CURRENT_COLUMN

指定されたタグに基づいて、列に割り当てられたタグ文字列値を返します。指定された列にタグが割り当てられていない場合は、 NULL を返します。

マスキングポリシー または 投影ポリシー の本文にこの関数が含まれている場合は、列に割り当てられたタグの値によって、その列に割り当てられたポリシーの戻り値を決定することができます。

構文

SYSTEM$GET_TAG_ON_CURRENT_COLUMN( '<tag_name>' )
Copy

引数

'tag_name'

文字列としてのタグの識別子。

たとえば、タグの名前が cost_center の場合は、引数として 'cost_center' を使用します。

使用上の注意

  • 現在、この関数は、列に設定されたタグ文字列値を動的に評価するためのマスキングポリシーまたは投影ポリシーの条件でのみ使用できます。

    Snowflakeは、 SELECT クエリ、行アクセスポリシー、ビュー、またはユーザー定義関数(UDF)のいずれかで関数を使用しているときにエラーを返します。

  • この関数は、すべてのテーブルのようなオブジェクト(例: ビュー)に適用されることに注意してください。

  • このシステム関数を呼び出すときは、タグが存在している必要があります。それ以外の場合、Snowflakeは次のエラーメッセージを返します。

    Tag '<tag_name>' does not exist or not authorized.
    
    Copy

マスキングポリシー

マスキングポリシーとこの関数の併用方法のコンテキスト例については、 例2: 列タグの文字列値に基づいて列データを保護する をご参照ください。

投影ポリシー

以下の投影ポリシーが列に割り当てられている場合、列を投影するには、その列の tags.accounting_col タグの値を public にする必要があります。

CREATE PROJECTION POLICY mypolicy
AS () RETURNS PROJECTION_CONSTRAINT ->
CASE
  WHEN SYSTEM$GET_TAG_ON_CURRENT_COLUMN('tags.accounting_col') = 'public'
    THEN PROJECTION_CONSTRAINT(ALLOW => true)
  ELSE PROJECTION_CONSTRAINT(ALLOW => false)
END;
Copy