Funzione current_recipient
Si applica a: Databricks SQL 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;