Funktionen current_recipient
Gäller för: Databricks SQL Databricks Runtime 14.2 och senare
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Returnerar egenskapsvärdet som är associerat med den angivna egenskapsnyckeln för den aktuella datamottagaren i en deltadelningskontext. Med den här funktionen kan dataprovidrar dynamiskt styra dataåtkomst baserat på mottagarspecifika egenskaper.
Syntax
current_recipient(key)
Argument
key
Ett
STRING
uttryck som anger en egenskapsnyckel för mottagare. Mottagaregenskaperna innehåller fördefinierade egenskaper som börjar med'databricks.'
och anpassade egenskaper. Se hantera mottagaregenskaper
Returer
En STRING
.
Kommentar
Den här funktionen bör användas i en vydefinition när dataleverantören skapar en delad vy. Observera att den skapade vyn endast är avsedd för delning: Dataprovidern kan inte fråga vyn direkt eftersom funktionsutvärderingen misslyckas på grund av att delningskontexten saknas.
Den här funktionen kan bara utvärderas när datamottagaren kör frågor mot en deltadelningsvy.
Exempel
-- 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');
-- Test recipient by mocking the context
> SET RECIPIENT cdc;
> SELECT * FROM acme_shared.default.my_view;
-- Grant access to shre to recipient
> 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;