次の方法で共有


current_recipient 関数

適用対象: check marked yes Databricks SQL 「はい」のチェック マーク Databricks Runtime 14.2 以上

重要

この機能はパブリック プレビュー段階にあります。

Delta Sharing コンテキストの現在のデータ受信者が指定したプロパティ キーに関連付けられているプロパティ値を返します。 この関数を使用すると、データ プロバイダーは受信者固有のプロパティに基づいてデータ アクセスを動的に制御できます。

構文

current_recipient(key)

引数

  • key

    受信者プロパティ キーを指定する、STRING 式。 受信者のプロパティには、'databricks.' から始まる定義済みのプロパティとカスタム プロパティが含まれます。 「受信者のプロパティを管理する」を参照してください

返品

STRING です。

Notes (メモ)

この関数は、データ プロバイダーが共有ビューを作成するときに、ビュー定義で使用する必要があります。 作成されるビューは共有専用であることにご注意ください。共有コンテキストがないため、関数の評価が失敗するので、データ プロバイダーはビューに直接クエリを実行できません。

この関数は、データ受信者が差分共有ビューに対してクエリを実行している場合にのみ、正常に評価できます。

-- provider creates view with row filtering
> CREATE VIEW acme.default.my_view AS
    SELECT * FROM acme.default.my_table
    WHERE country = current_recipient('country');

-- provider creates view with column masking
> CREATE VIEW acme.default.my_view AS
    SELECT
      CASE
        WHEN current_recipient('country') = 'US' THEN pii
        ELSE 'REDACTED'
      END AS pii
    FROM acme.default.my_table;

-- set recipient property and share view to the recipient
> ALTER SHARE my_share ADD VIEW acme.default.my_view;
> ALTER RECIPIENT cdc SET PROPERTIES ('country' = 'US');
> GRANT SELECT ON SHARE my_share TO RECIPIENT cdc;

-- recipient queries the view, results should be filtered by recipient’s property
> CREATE CATALOG acme_shared USING SHARE acme.my_share;
> SELECT * FROM acme_shared.default.my_view;