Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
In Unity Catalog è possibile usare le visualizzazioni dinamiche per configurare il controllo di accesso con granularità fine, tra cui:
Unity Catalog introduce le funzioni seguenti, che consentono di limitare in modo dinamico gli utenti che possono accedere a una riga, una colonna o un record in una visualizzazione:
current_user()
: restituisce l'indirizzo di posta elettronica dell'utente corrente.is_account_group_member()
: restituisce TRUE
se l'utente corrente è membro di un gruppo a livello di account specifico. Consigliato per l'uso nelle visualizzazioni dinamiche sui dati di Unity Catalog.is_member()
: restituisce TRUE
se l'utente corrente è membro di un gruppo a livello di area di lavoro specifico. Questa funzione viene fornita per la compatibilità con il metastore Hive esistente. Evitare di usarlo con visualizzazioni sui dati di Unity Catalog, perché non valuta l'appartenenza a gruppi a livello di account.Azure Databricks consiglia di non concedere agli utenti la possibilità di leggere le tabelle e le viste a cui si fa riferimento nella vista.
Gli esempi seguenti illustrano come creare visualizzazioni dinamiche in Unity Catalog.
Per creare o leggere viste dinamiche, i requisiti sono uguali a quelli per le viste standard, ad eccezione dei requisiti di calcolo. È necessario usare una delle risorse di calcolo seguenti:
Un'istanza di SQL Warehouse.
Calcolo con modalità di accesso condiviso.
Calcolo con modalità di accesso utente singolo in Databricks Runtime 15.4 LTS o versione successiva.
Non è possibile leggere le viste dinamiche usando il calcolo utente singolo in Databricks Runtime 15.3 o versione successiva.
Per sfruttare i vantaggi del filtro dei dati fornito in Databricks Runtime 15.4 LTS e versioni successive, è anche necessario verificare che l'area di lavoro sia abilitata per il calcolo serverless, perché la funzionalità di filtro dei dati che supporta le visualizzazioni dinamiche viene eseguita nel calcolo serverless. È quindi possibile che vengano addebitati costi per le risorse di calcolo serverless quando si usa il calcolo utente singolo per leggere le visualizzazioni dinamiche. Vedere Controllo di accesso con granularità fine per il calcolo di un singolo utente.
Con una visualizzazione dinamica, è possibile limitare le colonne a cui un utente o un gruppo specifico può accedere. Nell'esempio seguente solo i membri del auditors
gruppo possono accedere agli indirizzi di posta elettronica dalla sales_raw
tabella. Durante l'analisi delle query, Apache Spark sostituisce l'istruzione CASE
con la stringa REDACTED
letterale o il contenuto effettivo della colonna dell'indirizzo di posta elettronica. Le altre colonne vengono restituite normalmente. Questa strategia non ha alcun impatto negativo sulle prestazioni delle query.
-- Alias the field 'email' to itself (as 'email') to prevent the
-- permission logic from showing up directly in the column name results.
CREATE VIEW sales_redacted AS
SELECT
user_id,
CASE WHEN
is_account_group_member('auditors') THEN email
ELSE 'REDACTED'
END AS email,
country,
product,
total
FROM sales_raw
Con una visualizzazione dinamica, è possibile specificare le autorizzazioni fino al livello di riga o di campo. Nell'esempio seguente solo i membri del managers
gruppo possono visualizzare gli importi delle transazioni quando superano $1.000.000. I risultati corrispondenti vengono filtrati per gli altri utenti.
CREATE VIEW sales_redacted AS
SELECT
user_id,
country,
product,
total
FROM sales_raw
WHERE
CASE
WHEN is_account_group_member('managers') THEN TRUE
ELSE total <= 1000000
END;
Poiché le viste nel catalogo unity usano Spark SQL, è possibile implementare la maschera dati avanzata usando espressioni SQL e espressioni regolari più complesse. Nell'esempio seguente tutti gli utenti possono analizzare i domini di posta elettronica, ma solo i membri del auditors
gruppo possono visualizzare l'intero indirizzo di posta elettronica di un utente.
-- The regexp_extract function takes an email address such as
-- user.x.lastname@example.com and extracts 'example', allowing
-- analysts to query the domain name.
CREATE VIEW sales_redacted AS
SELECT
user_id,
region,
CASE
WHEN is_account_group_member('auditors') THEN email
ELSE regexp_extract(email, '^.*@(.*)$', 1)
END
FROM sales_raw
Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara ora