Automatisieren Sie Azure Databricks Unity-Katalogberechtigungen auf Schemaebene

Haftungsausschluss: Alle Ansichten und Meinungen, die im Blog geäußert werden, gehören ausschließlich dem Autor und nicht unbedingt dem Arbeitgeber des Autors oder einer anderen Gruppe oder Einzelperson. Dieser Artikel ist nicht eine Werbung für eine Cloud-/Datenmanagementplattform. Alle Bilder und Code-Schnipsel sind öffentlich auf der Azure/Databricks-Website verfügbar.

In diesem Artikel werde ich das Skript bereitstellen, um die Berechtigungsverwaltung auf der Unity Catalog-Schemebene zu automatisieren.

Berechtigungen auf der Unity Catalog-Schemebene

Unity Catalog privilege model

Das hierarchische Berechtigungsmodell in Unity Catalog ermöglicht es Benutzern, Berechtigungen auf jeder Ebene in der Hierarchie anzuwenden, wobei die untergeordneten Objekte automatisch die gleichen Berechtigungen erben. Wenn also Berechtigungen auf der Schemebene angewendet werden, werden sie automatisch auf alle Tabellen, Ansichten, Volumes und Funktionen innerhalb des Schemas angewendet.

In Unity Catalog (Databricks) werden Berechtigungen auf der Schemebene angewendet, wenn Sie den Zugriff auf eine Reihe von Tabellen und Ansichten innerhalb eines bestimmten Schemas steuern möchten. Schemeberechtigungen werden typischerweise in den folgenden Szenarien angewendet:

  1. Zugriff auf Objektgruppen gewähren: Wenn Sie Berechtigungen für mehrere Tabellen und Ansichten gemeinsam verwalten möchten, ist es effizienter, Berechtigungen auf der Schemebene anstelle von einzelnen Berechtigungen für jede Tabelle oder Ansicht anzuwenden. Dies ermöglicht es Ihnen, den Zugriff auf alle Objekte innerhalb dieses Schemas gleichzeitig zu steuern.
  2. Organisatorische Kontrolle: Wenn verschiedene Teams oder Abteilungen innerhalb einer Organisation Zugriff auf spezifische Datensätze benötigen, die unter separaten Schemata gespeichert sind. Die Anwendung von Schema-Ebene Berechtigungen ermöglicht es Ihnen, den Zugriff auf alle Objekte, die für ein Team innerhalb dieses Schemas relevant sind, zu gewähren oder einzuschränken.
  3. Konsistente Berechtigungsverwaltung: Für Umgebungen, in denen häufig neue Objekte (Tabellen/Ansichten) zu einem Schema hinzugefügt werden, sorgt die Festlegung von Berechtigungen auf Schema-Ebene dafür, dass neue Objekte die Berechtigungen automatisch erben, wodurch der Bedarf an manuellen Berechtigungsaktualisierungen verringert wird.
  4. Datensicherheit gewährleisten: Wenn Sie Zugriffskontrollen über eine bestimmte Kategorie von Datensätzen (z.B. Finanzdaten, HR-Daten) durchsetzen möchten, die logisch unter einem Schema organisiert ist. Durch das Festlegen von Berechtigungen auf Schema-Ebene gewährleisten Sie die Datensicherheit und vereinfachen die Verwaltung.

Automatisierungsskript

Voraussetzungen

  • Der Unity-Katalog ist bereits eingerichtet.
  • Die/der Hauptverantwortliche ist/sind mit dem Databricks-Arbeitsbereich verbunden.
  • Der Benutzer, der das Berechtigungsskript ausführt, hat die entsprechenden Berechtigungen für das Schema und den Katalog.

Schritt 1: Erstellen Sie ein Notizbuch und deklarieren Sie die Variablen 

Erstellen Sie ein Notizbuch im Databricks-Arbeitsbereich. Um ein Notizbuch in Ihrem Arbeitsbereich zu erstellen, klicken Sie auf das „+“ Neu in der Seitenleiste und wählen Sie dann Notizbuch

Kopieren Sie den folgenden Code-Schnipsel und fügen Sie ihn in die Zelle des Notizbuchs ein und führen Sie die Zelle aus.

Python

 

Schritt 2: Setzen Sie den Katalog und das Schema

Kopieren, einfügen und führen Sie den folgenden Code-Block in einer neuen oder bestehenden Zelle aus und führen Sie die Zelle aus.

Python

 

Schritt 3: Durchlaufen Sie die Prinzipale und Berechtigungen und wenden Sie die Genehmigung im Katalog und im Schema an

Kopieren, einfügen und führen Sie den folgenden Code-Block in einer neuen oder bestehenden Zelle aus, und führen Sie dann die Zelle aus, um die Berechtigungen anzuwenden.

Python

 

Validierung

Sie können die Berechtigungen validieren, indem Sie die Databricks-Benutzeroberfläche öffnen und zu Katalog im Daten-Explorer navigieren. Sobald der Katalog im Datenbereich angezeigt wird, klicken Sie auf den Katalog, wählen Sie das Schema aus, auf das Sie die Berechtigungen angewendet haben, und gehen Sie zum Tab Berechtigungen. Dort können Sie alle für das Schema angewendeten Berechtigungen sehen.

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

Sie können auch das folgende SQL-Skript in einem Notebook ausführen, um alle Berechtigungen für ein Schema anzuzeigen, als Teil Ihrer Validierung.

SQL

 

Schlussfolgerung

Die Automatisierung des Berechtigungsmanagements im Databricks Unity-Katalog auf Schemaebene hilft dabei, eine konsistente und effiziente Zugriffskontrolle für die Gruppe von Objekten (z. B. Tabellen, Ansichten, Funktionen und Volumes) im Katalog sicherzustellen. Der bereitgestellte Code zeigt einen praktischen Weg auf, um Schemaebene-Berechtigungen zuzuweisen, was die Verwaltung von Berechtigungen über Prinzipale (z. B. Benutzer und Gruppen) erleichtert. Dieser Ansatz reduziert die Verwaltungsaufgaben und das Risiko manueller Fehler, indem Tabellen und Ansichten innerhalb eines Schemas gruppiert und konsistente Berechtigungen für das gesamte Schema angewendet werden.

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