共用方式為


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;