Funkcja current_recipient

Dotyczy:check marked yes Databricks SQL check marked yes Databricks Runtime 14.2 i nowsze

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Zwraca wartość właściwości skojarzona z określonym kluczem właściwości dla bieżącego adresata danych w kontekście udostępniania różnicowego. Ta funkcja umożliwia dostawcom danych dynamiczne kontrolowanie dostępu do danych na podstawie właściwości specyficznych dla adresata.

Składnia

current_recipient(key)

Argumenty

  • key

    Wyrażenie STRING określające klucz właściwości adresata. Właściwości adresata obejmują wstępnie zdefiniowane właściwości rozpoczynające się od 'databricks.' i właściwości niestandardowe. Zobacz zarządzanie właściwościami adresatów

Powroty

Klasa STRING.

Uwagi

Ta funkcja powinna być używana w definicji widoku, gdy dostawca danych tworzy widok udostępniony. Należy pamiętać, że utworzony widok jest przeznaczony tylko do udostępniania: dostawca danych nie może wykonać zapytania względem widoku bezpośrednio, ponieważ ocena funkcji zakończy się niepowodzeniem z powodu braku kontekstu udostępniania.

Tę funkcję można pomyślnie ocenić tylko wtedy, gdy adresat danych wykonuje zapytanie dotyczące widoku udostępniania różnicowego.

Przykłady

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