Funzione current_recipient

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 14.2 e versioni successive

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Restituisce il valore della proprietà associato alla chiave di proprietà specificata per il destinatario dati corrente in un contesto di condivisione delta. Questa funzione consente ai provider di dati di controllare in modo dinamico l'accesso ai dati in base alle proprietà specifiche del destinatario.

Sintassi

current_recipient(key)

Argomenti

  • key

    Espressione STRING che specifica una chiave di proprietà del destinatario. Le proprietà dei destinatari includono proprietà predefinite che iniziano con 'databricks.' e proprietà personalizzate. Vedere Gestire le proprietà dei destinatari

Valori restituiti

Un oggetto STRING.

Note

Questa funzione deve essere usata in una definizione di visualizzazione quando il provider di dati crea una visualizzazione condivisa. Si noti che la visualizzazione creata è solo per la condivisione: il provider di dati non è in grado di eseguire query direttamente sulla vista perché la valutazione della funzione avrà esito negativo a causa di un contesto di condivisione mancante.

Questa funzione può essere valutata correttamente solo quando il destinatario dei dati esegue query su una visualizzazione di condivisione differenziale.

Esempi

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