Freigeben über


Hinzufügen einer Unity Catalog-Tabellenressource zu einer Databricks-App

Fügen Sie Unity-Katalogtabellen als Databricks-Apps-Ressourcen hinzu, damit Ihre App Daten abfragen und ändern kann, die im Unity-Katalog mit Governance und Zugriffssteuerung gespeichert sind. Unity Catalog-Tabellen bieten strukturierten Datenspeicher mit differenzierten Berechtigungen, sodass Ihre App Daten ohne Hartcodierungsanmeldeinformationen sicher lesen und schreiben kann.

Berechtigungsanforderungen

Um auf eine Unity-Katalogtabelle zuzugreifen, muss der Dienstprinzipal der App über die USE CATALOG-Berechtigung für den übergeordneten Katalog, die USE SCHEMA-Berechtigung für das übergeordnete Schema und die SELECT- oder MODIFY-Berechtigung für die Tabelle verfügen. Wenn Sie die Tabellenressource hinzufügen, gewährt Azure Databricks der Serviceprincipal der App automatisch diese Berechtigungen.

Damit diese automatische Gewährung erfolgreich ausgeführt werden kann, muss für jede Berechtigung eine der folgenden Bedingungen erfüllt sein:

  • Entweder haben alle Kontobenutzer das USE CATALOG-Privileg im Katalog, oder Sie haben das -Privileg im Katalog.
  • Für USE SCHEMA: Entweder haben alle Kontobenutzer das USE SCHEMA-Privileg für das Schema, oder Sie haben das MANAGE-Privileg für das Schema.
  • Für SELECT oder MODIFY: Entweder verfügen alle Kontobenutzer über die SELECT- oder MODIFY-Berechtigung für die Tabelle, oder Sie verfügen über die MANAGE-Berechtigung für die Tabelle.

Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Hinzufügen einer Unity-Katalogtabellenressource

Bevor Sie eine Tabelle als Ressource hinzufügen, überprüfen Sie die Voraussetzungen für die App-Ressource.

  1. Wenn Sie eine App erstellen oder bearbeiten, navigieren Sie zum Schritt "Konfigurieren" .
  2. Klicken Sie im Abschnitt "App-Ressourcen " auf +Ressource hinzufügen.
  3. Wählen Sie die UC-Tabelle als Ressourcentyp aus.
  4. Wählen Sie eine Unity-Katalogtabelle aus den verfügbaren Tabellen in Ihrem Arbeitsbereich aus. Die Tabelle muss bereits im Unity-Katalog vorhanden sein.
  5. Wählen Sie die entsprechende Berechtigungsstufe für Ihre App aus:
    • Auswählen: Gewährt der App die Berechtigung zum Abfragen und Lesen von Daten aus der Tabelle. Dies ist für Apps geeignet, die nur Daten lesen müssen.
    • Ändern: Gewährt der App die Berechtigung zum Einfügen, Aktualisieren und Löschen von Daten in der Tabelle. Die Berechtigung impliziert SELECT, sodass die App auch Daten lesen kann.
  6. (Optional) Geben Sie einen benutzerdefinierten Ressourcenschlüssel an, auf den Sie in der App-Konfiguration auf die Tabelle verweisen. Der Standardschlüssel ist table.

Hinweis

MODIFY ist für alle Tabellentypen nicht verfügbar. Ansichten unterstützen z. B. nicht die MODIFY Berechtigung. Wenn MODIFY von der Tabelle nicht unterstützt wird, ist nur SELECT verfügbar.

Umgebungsvariablen

Wenn Sie eine App mit einer Unity Catalog-Tabellenressource bereitstellen, macht Azure Databricks den vollständigen dreistufigen Namen der Tabelle über Umgebungsvariablen verfügbar, auf die Sie mithilfe des valueFrom Felds verweisen können.

Beispielkonfiguration:

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

Verwenden der Tabelle in Ihrer Anwendung:

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Weitere Informationen finden Sie unter Verwenden von Umgebungsvariablen für den Zugriff auf Ressourcen.

Entfernen einer Unity-Katalogtabellenressource

Wenn Sie eine Unity-Katalogtabellenressource aus einer App entfernen, verliert der Dienstprinzipal der App die Berechtigungen SELECT, MODIFY, und ALL PRIVILEGES für die Tabelle. Azure Databricks versucht auch, hierarchische Katalog- und Schemaberechtigungen zu widerrufen. Die Tabelle selbst bleibt unverändert und ist weiterhin für andere Benutzer und Anwendungen verfügbar, die über entsprechende Berechtigungen verfügen.

Bewährte Methoden

Beachten Sie Folgendes, wenn Sie mit Unity Catalog-Tabellenressourcen arbeiten:

  • Erteilen Sie minimale Berechtigungen. Verwenden Sie SELECT es sei denn, Ihre App muss Daten in die Tabelle schreiben.
  • Kombinieren Sie Tabellenressourcen mit einer SQL Warehouse-Ressource , wenn Ihre App SQL-Abfragen für die Tabelle ausführen muss.
  • Verwenden Sie separate Tabellenressourcen für unterschiedliche Tabellen, anstatt breiten Zugriff auf Schemaebene zu gewähren, damit Sie das Prinzip der geringsten Berechtigungen anwenden können.
  • Erwägen Sie die Verwendung von Unity-Katalogvolumes für unstrukturierte Daten und Unity-Katalogtabellen für strukturierte Daten.