current_recipient
函式
適用於: Databricks SQL Databricks Runtime 14.2 和更新版本
重要
這項功能處於公開預覽狀態。
傳回與 Delta Sharing 內容中目前數據收件者指定之屬性索引鍵相關聯的屬性值。 此函式可讓數據 providers 根據收件者特定屬性動態控制數據存取。
語法
current_recipient(key)
引數
key
STRING
指定收件者屬性索引鍵的表達式。 收件者屬性包含從'databricks.'
和 自訂屬性開始的預先定義屬性。 請參閱 管理收件者屬性
傳回
STRING
。
備註
當數據提供者正在建立共享檢視時,應該在檢視定義中使用這個函式。 請注意,建立的檢視僅供共用使用:數據提供者無法直接查詢檢視,因為函式評估會因為遺漏共用內容而失敗。
只有在數據收件者正在查詢差異共享檢視時,才能成功評估此函式。
範例
-- 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');
-- Test recipient by mocking the context
> SET RECIPIENT cdc;
> SELECT * FROM acme_shared.default.my_view;
-- Grant access to shre to recipient
> 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;