current_recipient 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 14.2 及更高版本

重要

此功能目前以公共预览版提供。

在增量共享上下文中返回与当前数据接收方的指定属性键关联的属性值。 此函数使数据提供程序能基于特定于接收方的属性来动态控制数据访问。

语法

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');
> 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;