Automatiseer Azure Databricks Unity Catalogusrechten op schemaniveau

Disclaimer: Alle meningen en standpunten die in de blog worden uitgedrukt, behoren uitsluitend toe aan de auteur en niet noodzakelijk aan de werkgever van de auteur of enige andere groep of persoon. Dit artikel is geen promotie voor een cloud/data management platform. Alle afbeeldingen en codefragmenten zijn openbaar beschikbaar op de Azure/Databricks website.

In dit artikel zal ik het script geven om toegangsbeheer op het Unity Catalog-schema niveau te automatiseren.

Bevoegdheden op het Unity Catalog Schema Niveau

Unity Catalog privilege model

Het hiërarchische bevoegdhedenmodel in Unity Catalog stelt gebruikers in staat om bevoegdheden toe te passen op elk niveau in de hiërarchie, waarbij de onderliggende objecten automatisch dezelfde machtigingen erven. Dus als er bevoegdheden worden toegepast op het schemasniveau, worden deze automatisch toegepast op alle tabellen, views, volumes en functies binnen het schema.

In Unity Catalog (Databricks) worden bevoegdheden op het schemasniveau toegepast wanneer u toegang tot een set tabellen en views binnen een specifiek schema wilt beheren. Bevoegdheden op schemasniveau worden meestal toegepast in de volgende scenario’s:

  1. Toegang verlenen aan groepen objecten: Als u bevoegdheden voor meerdere tabellen en views collectief wilt beheren, is het efficiënter om bevoegdheden op het schemasniveau toe te passen in plaats van individueel voor elke tabel of view. Hiermee kunt u toegang tot alle objecten binnen dat schema gelijktijdig beheren.
  2. Organisatorische controle: Wanneer verschillende teams of afdelingen binnen een organisatie toegang nodig hebben tot specifieke datasets, die zijn opgeslagen onder aparte schema’s. Door machtigingen op schema-niveau toe te passen, kunt u toegang verlenen of beperken tot alle objecten die relevant zijn voor een team binnen dat schema.
  3. Consistent beheer van machtigingen: Voor omgevingen waarin nieuwe objecten (tabellen/weergaven) vaak aan een schema worden toegevoegd, zorgt het instellen van machtigingen op schema-niveau ervoor dat nieuwe objecten de machtigingen automatisch erven, waardoor de noodzaak voor handmatige machtigingsupdates wordt verminderd.
  4. Handhaven van gegevensbeveiliging: Wanneer u toegangscontroles wilt afdwingen over een bepaalde datasetcategorie (bijv. financiële gegevens, HR-gegevens) die logisch is georganiseerd onder een schema. Door machtigingen op schema-niveau in te stellen, handhaaft u de gegevensbeveiliging terwijl u de administratie vereenvoudigt.

Automatiseringsscript

Vereisten

  • Unity Catalog is al ingesteld.
  • Principal(en) is/zijn geassocieerd met de Databricks-werkruimte.
  • De gebruiker die het machtigingsscript uitvoert, heeft de juiste machtigingen op het schema en de catalogus.

Stap 1: Maak een Notebook en Declareer de Variabelen 

Maak een notebook in de Databricks-werkruimte. Om een notebook in uw werkruimte te maken, klikt u op het “+” Nieuw in de zijbalk, kies vervolgens Notebook

Kopieer en plak de onderstaande codefragment in de notebookcel en voer de cel uit.

Python

 

Stap 2: Stel de Catalogus en het Schema in

Kopieer, plak en voer de onderstaande codeblok uit in een nieuwe of bestaande cel en voer de cel uit.

Python

 

Sstep 3: Loop door de Principalen en Rechten en Pas Grant toe op de Catalogus en het Schema

Kopieer, plak en voer de onderstaande codeblok uit in een nieuwe of bestaande cel, en voer de cel uit om de rechten toe te passen.

Python

 

Validatie

Je kunt de rechten valideren door de Databricks UI te openen en naar Catalogus in de Gegevensverkenner te navigeren. Zodra de catalogus verschijnt in de Gegevenssectie, klik je op de catalogus, selecteer je het schema waar je de rechten hebt toegepast en ga je naar het Rechten tabblad. Je kunt nu alle rechten zien die zijn toegepast op het schema.

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

Je kunt ook het onderstaande SQL-script uitvoeren in een notitieboek om alle rechten voor een schema weer te geven als onderdeel van je validatie.

SQL

 

Conclusie

Het automatiseren van het beheer van rechten in Databricks Unity Catalog op schema-niveau helpt om consistente en efficiënte toegang te waarborgen voor de groep objecten (bijv. tabellen, weergaven, functies en volumes) in de catalogus. De gegeven code toont een praktische manier om rechten op schema-niveau toe te wijzen, waardoor het gemakkelijker wordt om rechten te beheren over principals (bijv. gebruikers en groepen). Deze aanpak vermindert de beheertaken en de kans op menselijke fouten door tabellen en weergaven binnen een schema te groeperen en consistente rechten voor het hele schema toe te passen.

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