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