current_recipient
関数
適用対象: 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;