Automatizzare le autorizzazioni del catalogo di unità di Azure Databricks a livello di schema

Avviso legale: Tutti i punti di vista e le opinioni espresse nel blog appartengono esclusivamente all’autore e non necessariamente al datore di lavoro dell’autore o a qualsiasi altro gruppo o individuo. Questo articolo non è una promozione per una piattaforma di gestione di cloud/dati. Tutte le immagini e gli snippet di codice sono pubblicamente disponibili sul sito di Azure/Databricks.

In questo articolo fornirò lo script per automatizzare la gestione delle autorizzazioni a livello di schema del catalogo Unity.

Privilegi a livello di schema del catalogo Unity

Unity Catalog privilege model

Il modello di privilegi gerarchici in Unity Catalog consente agli utenti di applicare privilegi a qualsiasi livello della gerarchia e gli oggetti figlio ereditano automaticamente le stesse autorizzazioni. Pertanto, se l’autorizzazione viene applicata a livello di schema, verrà automaticamente applicata a tutte le tabelle, le viste, i volumi e le funzioni all’interno dello schema.

In Unity Catalog (Databricks), le autorizzazioni a livello di schema vengono applicate quando si desidera controllare l’accesso a un insieme di tabelle e viste all’interno di uno schema specifico. Le autorizzazioni a livello di schema vengono tipicamente applicate nei seguenti scenari:

  1. Concessione di accesso a gruppi di oggetti: Se si desidera gestire le autorizzazioni per più tabelle e viste collettivamente, è efficiente applicare le autorizzazioni a livello di schema anziché singolarmente per ogni tabella o vista. Ciò consente di controllare l’accesso a tutti gli oggetti all’interno dello schema contemporaneamente.
  2. Controllo organizzativo: Quando diversi team o dipartimenti all’interno di un’organizzazione necessitano di accesso a specifici set di dati, che sono memorizzati sotto schemi separati. Applicare autorizzazioni a livello di schema consente di concedere o limitare l’accesso a tutti gli oggetti rilevanti per un team all’interno di tale schema.
  3. Gestione coerente delle autorizzazioni: Per ambienti in cui nuovi oggetti (tabelle/viste) vengono frequentemente aggiunti a uno schema, impostare le autorizzazioni a livello di schema garantisce che i nuovi oggetti ereditino automaticamente le autorizzazioni, riducendo la necessità di aggiornamenti manuali delle autorizzazioni.
  4. Mantenimento della sicurezza dei dati: Quando si desidera imporre controlli di accesso su una particolare categoria di dataset (ad esempio, dati finanziari, dati HR) che è organizzata logicamente sotto uno schema. Impostando le autorizzazioni a livello di schema, si mantiene la sicurezza dei dati semplificando l’amministrazione.

Script di automazione

Prerequisiti

  • Unity Catalog è già configurato.
  • Il/i principale/i è/sono associato/i allo spazio di lavoro Databricks.
  • L’utente che esegue lo script di autorizzazioni ha le autorizzazioni appropriate sullo schema e sul catalogo.

Passaggio 1: Creare un Notebook e dichiarare le Variabili 

Crea un notebook nello spazio di lavoro Databricks. Per creare un notebook nel tuo spazio di lavoro, fai clic su “+” Nuovo nella barra laterale, quindi scegli Notebook

Copia e incolla il frammento di codice sottostante nella cella del notebook e esegui la cella.

Python

 

Passaggio 2: Imposta il Catalogo e lo Schema

Copia, incolla ed esegui il blocco di codice qui sotto in una cella nuova o esistente e poi esegui la cella.

Python

 

Passaggio 3: Scorrere i Principali e i Privilegi e Applicare il Permesso al Catalogo e allo Schema

Copia, incolla ed esegui il blocco di codice qui sotto in una cella nuova o esistente, quindi esegui la cella per applicare i permessi.

Python

 

Convalida

Puoi convalidare i privilegi aprendo l’interfaccia utente di Databricks e navigando su Catalogo nell’Esplora dati. Una volta che il catalogo appare nella sezione Dati, fai clic sul catalogo, quindi seleziona lo schema dove hai applicato i permessi e vai alla scheda Permessi. Ora puoi vedere tutti i privilegi applicati allo schema.

Permissions applied in the default schema inside the main catalog available out of the box

Puoi anche eseguire lo script SQL qui sotto in un notebook per visualizzare tutti i permessi per uno schema come parte della convalida.

SQL

 

Conclusione

L’automatizzazione della gestione dei privilegi nel Catalogo di Unity Databricks a livello di schema aiuta a garantire un controllo degli accessi coerente ed efficiente per il gruppo di oggetti (ad esempio tabelle, viste, funzioni e volumi) nel catalogo. Il codice fornito dimostra un modo pratico per assegnare privilegi a livello di schema, semplificando la gestione dei permessi tra i principali (ad esempio utenti e gruppi). Questo approccio riduce i compiti di gestione e il rischio di errori manuali raggruppando tabelle e viste all’interno di uno schema e applicando permessi consistenti per l’intero schema.

Source:
https://dzone.com/articles/automate-databricks-unity-catalog-permissions-at-schema-level