Поделиться через


Функция current_recipient

Область применения: флажок Databricks SQL флажок Databricks Runtime 14.2 и более поздних версий

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Возвращает значение свойства, связанное с указанным ключом свойства для текущего получателя данных в контексте delta Sharing. Эта функция позволяет поставщикам данных динамически управлять доступом к данным на основе свойств конкретного получателя.

Синтаксис

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;