current_recipient-Funktion

Gilt für: Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 14.2 und höher

Wichtig

Dieses Feature befindet sich in der Public Preview.

Gibt den Eigenschaftswert zurück, der dem angegebenen Eigenschaftsschlüssel für den aktuellen Datenempfänger in einem Delta-Freigabekontext zugeordnet ist. Mit dieser Funktion können Datenanbieter den Datenzugriff basierend auf empfängerspezifischen Eigenschaften dynamisch steuern.

Syntax

current_recipient(key)

Argumente

  • key

    Ein STRING-Ausdruck, der einen Empfängereigenschaftsschlüssel angibt. Empfängereigenschaften enthalten vordefinierte Eigenschaften, die mit 'databricks.' und benutzerdefinierten Eigenschaften beginnen. Siehe Verwalten von Empfängereigenschaften.

Gibt zurück

Ein STRING.

Hinweise

Diese Funktion sollte in einer Ansichtsdefinition verwendet werden, wenn der Datenanbieter eine freigegebene Ansicht erstellt. Beachten Sie, dass die erstellte Ansicht nur für die Freigabe vorgesehen ist: Der Datenanbieter kann die Ansicht nicht direkt abfragen, da die Funktionsauswertung aufgrund von fehlendem Freigabekontext fehlschlägt.

Diese Funktion kann nur dann erfolgreich ausgewertet werden, wenn der Datenempfänger eine Delta-Freigabeansicht abfragt.

Beispiele

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