Verwalten von Berechtigungen in Unity Catalog

Auf dieser Seite wird erläutert, wie Sie Berechtigungen für sicherungsfähige Objekte im Unity-Katalog erteilen, widerrufen und prüfen und wie Sie den Objektbesitz verwalten. Konzeptioneller Hintergrund für das Berechtigungsmodell, die Berechtigungsvererbung und den Besitz finden Sie unter Unity Catalog-Berechtigungsmodellkonzepte.

Wer kann Berechtigungen verwalten?

Benutzer*innen können anfangs nicht auf die Daten in einem Metastore zugreifen. Azure Databricks-Kontoadministrator*innen, -Arbeitsbereichsadministrator*innen und -Metastore-Administrator*innen verfügen über Standardberechtigungen für die Verwaltung des Unity Catalogs. Siehe Administratorrechte im Unity Catalog.

Alle sicherungsfähigen Objekte in Unity Catalog haben einen Besitzer. Objektbesitzer verfügen über alle Berechtigungen für dieses Objekt, einschließlich der Möglichkeit, anderen Prinzipalen Berechtigungen zu erteilen. Besitzer können anderen Benutzern die MANAGE Berechtigungen für das Objekt gewähren, wodurch Benutzer Berechtigungen für das Objekt verwalten können. Siehe "Verwalten des Objektbesitzes".

Berechtigungen können von einer der folgenden gewährt werden:

  • Der Besitzer des Objekts.
  • Der Besitzer des Katalogs oder Schemas, der das Objekt enthält.
  • Ein Benutzer mit den MANAGE Berechtigungen für das Objekt.
  • Ein Metastore-Administrator.

Kontoadmins können auch Berechtigungen direkt in einem Metastore gewähren.

Arbeitsbereich-Katalogberechtigungen

Wenn Ihr Arbeitsbereich automatisch für Unity Catalog aktiviert wurde, wird der Arbeitsbereich standardmäßig an einen Metastore angefügt, und für Ihren Arbeitsbereich im Metastore wird ein Arbeitsbereichkatalog erstellt. Arbeitsbereichsadministrator*innen sind die Standardbesitzer*innen des Arbeitsbereichkatalogs. Als Besitzer*innen können sie Berechtigungen für den Arbeitsbereichkatalog und alle untergeordneten Objekte verwalten.

Alle Arbeitsbereichsbenutzer erhalten die USE CATALOG-Berechtigung für den Arbeitsbereichkatalog. Arbeitsbereichsbenutzer*innen erhalten außerdem die Berechtigungen USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION und CREATE MATERIALIZED VIEW für das default-Schema im Katalog.

Weitere Informationen finden Sie unter Automatische Aktivierung von Unity Catalog.

Berechtigungen anzeigen, Zuweisung und widerrufen

Sie können Berechtigungen für Metastore-Objekte mithilfe von SQL-Befehlen, der Databricks-CLI, des Databricks Terraform-Anbieters oder in Katalog-Explorer verwalten.

Ersetzen Sie in den folgenden SQL-Befehlen die folgenden Platzhalterwerte:

  • <privilege-type> ist ein Unity-Katalog-Berechtigungstyp. Weitere Informationen finden Sie unter Berechtigungstypen.
  • <securable-type>: Der Typ des sicherungsfähigen Objekts, wie CATALOG oder TABLE. Weitere Informationen finden Sie unter Sicherungsfähige Objekte.
  • <securable-name>: Der Name des sicherungsfähigen Objekts. Wenn der sicherungsfähige Typ METASTORE lautet, geben Sie nicht den sicherungsfähigen Namen an. Es wird davon ausgegangen, dass er der dem Arbeitsbereich zugeordnete Metaspeicher ist.
  • <principal> ist ein Benutzer, ein Dienstprinzipal (dargestellt durch seinen AnwendungId-Wert) oder eine Gruppe. Sie müssen Benutzerkonten, Dienstprinzipale und Gruppennamen, die Sonderzeichen in Backticks (` `) enthalten, einschließen. Siehe Prinzipal.

Anzeigen von Zuschüssen für ein Objekt

Hinweis

Derzeit können Benutzer mit dem MANAGE-Privileg für ein Objekt nicht alle Berechtigungen für dieses Objekt im INFORMATION_SCHEMAanzeigen. Stattdessen zeigt INFORMATION_SCHEMA nur eigene Zuweisungen für das Objekt an. Dieses Verhalten wird in Zukunft korrigiert.

Benutzer mit MANAGE Berechtigungen können alle Berechtigungen für ein Objekt mithilfe von SQL-Befehlen oder Katalog-Explorer anzeigen. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.

Erforderliche Berechtigungen:

  • Metastore-Administratoren, Benutzer mit der MANAGE Berechtigung für das Objekt, der Eigentümer des Objekts oder der Eigentümer des Katalogs oder Schemas, das das Objekt enthält, können alle Berechtigungen für das Objekt einsehen.
  • Wenn Sie nicht über die oben genannten Berechtigungen verfügen, können Sie nur Ihre eigenen Berechtigungen für das Objekt anzeigen.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle oder eine Sicht.
  3. Wechseln Sie zur Registerkarte Berechtigungen.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus. Sie können Zuweisungen für einen bestimmten Prinzipal anzeigen oder alle Zuweisungen für ein sicherungsfähiges Objekt anzeigen.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

Der folgende Befehl zeigt z. B. alle Zuweisungen für ein Schema mit dem Namen default im übergeordneten Katalog mit dem Namen main an:

  SHOW GRANTS ON SCHEMA main.default;

Der Befehl gibt Folgendes zurück:

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Meine Zuschüsse für ein Objekt anzeigen

Erforderliche Berechtigungen: Sie können immer Ihre eigenen Zuweisungen auf einem Objekt einsehen.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle oder eine Sicht.
  3. Gehen Sie zur Registerkarte Berechtigungen. Wenn Sie kein Objektbesitzer oder Metadatenspeicher-Administrator sind, können Sie nur Ihre eigenen Zuweisungen auf dem Objekt sehen.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus, um Ihre Berechtigungen für ein Objekt anzuzeigen.

  SHOW GRANTS `<user>@<domain-name>` ON  <securable-type> <securable-name>

Erteilen von Berechtigungen für ein Objekt

Erforderliche Berechtigung: Metadatenspeicher-Administrator, die MANAGE-Berechtigung am Objekt, der Besitzer des Objekts oder der Besitzer des Katalogs oder Schemas, das das Objekt enthält.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle oder eine Sicht.
  3. Wechseln Sie zur Registerkarte Berechtigungen.
  4. Klicken Sie auf Gewähren.
  5. Geben Sie die E-Mail-Adresse für einen Benutzer oder den Namen einer Gruppe ein.
  6. Wählen Sie die zu erteilenden Berechtigungen aus.
  7. Wählen Sie OK aus.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

Der folgende Befehl beispielsweise gewährt einer Gruppe namens finance-team (Finanzteam) den Zugriff zum Erstellen von Tabellen im Schema default (Standard) mit dem übergeordneten Katalog mit Namen main (Haupt):

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

Beachten Sie, dass registrierte Modelle eine Art von Funktion sind. Um ein Privileg für ein Modell zu gewähren, müssen Sie „GRANT ON FUNCTION“ verwenden. Um beispielsweise der Gruppe ml-team-acme die EXECUTE Berechtigung für das Modell prod.ml_team.iris_modelzu gewähren, verwenden Sie Folgendes:

  GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;

Widerrufen von Berechtigungen für ein Objekt

Erforderliche Berechtigung: Metadatenspeicher-Administrator, die MANAGE-Berechtigung am Objekt, der Besitzer des Objekts oder der Besitzer des Katalogs oder Schemas, das das Objekt enthält.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle oder eine Sicht.
  3. Wechseln Sie zur Registerkarte Berechtigungen.
  4. Wählen Sie eine Berechtigung aus, die einem Benutzer, einem Dienstprinzipal oder einer Gruppe gewährt wurde.
  5. Klicken Sie auf Widerrufen.
  6. Klicken Sie zur Bestätigung auf Widerrufen.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus.

  REVOKE <privilege-type> ON <securable-type> <securable-name> FROM <principal>

Der folgende Befehl beispielsweise widerruft für eine Gruppe mit dem Namen finance-team den Zugriff zum Erstellen von Tabellen im Schema default mit dem übergeordneten Katalog mit Namen main:

  REVOKE CREATE TABLE ON SCHEMA main.default FROM `finance-team`;

Eine „REVOKE“-Anweisung ist erfolgreich, selbst wenn die angegebenen Berechtigungen ursprünglich nicht gewährt wurden. Es stellt sicher, dass die Berechtigungen nicht vorhanden sind, unabhängig von ihrem vorherigen Zustand.

Anzeigen von Zuweisungen in einem Metastore

Erforderliche Berechtigungen: Metastore-Administrator oder Kontoadministrator. Sie können auch Ihre eigenen Berechtigungen in einem Metastore einsehen.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Klicken Sie oben im Katalogbereich auf das Zahnradsymbol und wählen Sie Metastore aus.
  3. Klicken Sie auf die Registerkarte Berechtigungen.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus. Sie können Zuweisungen für einen bestimmten Prinzipal anzeigen oder alle Zuweisungen in einem Metastore anzeigen.

  SHOW GRANTS [principal] ON METASTORE

Erteilen von Berechtigungen für einen Metastore

Erforderliche Berechtigungen: Metadatenspeicher-Administrator oder Kontoadministrator.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Klicken Sie oben im Katalogbereich auf das Zahnradsymbol und wählen Sie Metastore aus.
  3. Klicken Sie auf der Registerkarte Berechtigungen auf Erteilen.
  4. Geben Sie die E-Mail-Adresse für einen Benutzer oder den Namen einer Gruppe ein.
  5. Wählen Sie die zu erteilenden Berechtigungen aus.
  6. Wählen Sie OK aus.

SQL

  1. Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus.

    GRANT <privilege-type> ON METASTORE TO <principal>;
    

    Wenn Sie Einem Metastore Berechtigungen erteilen, geben Sie den Namen des Metastores nicht an, da der Metastore, der an Ihren Arbeitsbereich angefügt ist, angenommen wird.

Widerrufen von Berechtigungen für einen Metastore

Erforderliche Berechtigungen: Metadatenspeicher-Administrator oder Kontoadministrator.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Klicken Sie oben im Katalogbereich auf das Zahnradsymbol und wählen Sie Metastore aus.
  3. Wählen Sie auf der Registerkarte Berechtigungen einen Benutzer oder eine Gruppe aus, und klicken Sie auf Widerrufen.
  4. Klicken Sie zur Bestätigung auf Widerrufen.

SQL

  1. Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus.

    REVOKE <privilege-type> ON METASTORE FROM <principal>;
    

    Wenn Sie Berechtigungen für einen Metastore widerrufen, geben Sie den Namen des Metastores nicht an, da der Metastore, der an Ihren Arbeitsbereich angefügt ist, angenommen wird.

Verwalten des Objektbesitzes

Anzeigen des Besitzers eines Objekts

Sie können den Katalog-Explorer oder SQL-Anweisungen verwenden, um den Besitzer eines Objekts anzuzeigen.

Erforderliche Berechtigungen: Jeder Benutzer mit den Berechtigungen für das BROWSE-Objekt oder ein übergeordnetes Objekt des Objekts kann den Objektbesitzer anzeigen.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.

  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle, eine Ansicht, ein Volumen, einen externen Speicherort oder Anmeldeinformationen für den Speicher.

    Die Navigation zum Objekt hängt vom Objekt ab. Kataloge, Schemas und die Inhalte von Schemas (z. B. Tabellen und Volumes) können im linken Katalogbereich ausgewählt werden. Sie können andere Objekte, z. B. externe Speicherorte oder Delta-Freigabefreigaben, finden, indem Sie auf das Zahnradsymbol oberhalb des Katalogbereichs klicken und die Objektkategorie im Menü auswählen.

    Für die meisten Objekte wird der Besitzer auf der Registerkarte Übersicht auf der Seite „Objektdetails“ angezeigt. Bei einigen Objekten, z. B. externen Speicherorten, wird sie oben auf der Objektdetailseite angezeigt.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus. Ersetzen Sie folgende Platzhalterwerte:

  • <securable-type>: Der Typ des sicherungsfähigen Objekts, z. B CATALOG oder TABLE
  • <catalog>: Der übergeordnete Katalog, wenn Sie ein Schema oder den Inhalt eines Schemas anzeigen.
  • <schema>: Das übergeordnete Schema, wenn Sie den Inhalt eines Schemas anzeigen, z. B. eine Tabelle oder Ansicht.
  • <securable-name>: Der Name des sicherungsfähigen Objekts
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

Übertragung des Eigentums

Sie können den Katalog-Explorer oder SQL-Anweisungen verwenden, um den Besitzer eines Objekts zu übertragen.

Berechtigungen erforderlich: Sie können den Objektbesitz übertragen, wenn Sie der aktuelle Besitzer, ein Metastore-Administrator, der Besitzer des Containers (der Katalog für ein Schema, das Schema für eine Tabelle) oder ein Benutzer mit den MANAGE Berechtigungen für das Objekt sind. Delta Sharing-Freigabeobjekte sind eine Ausnahme: Nur ein Metastore-Administrator kann den Besitz der Freigabe übertragen.

Um Berechtigungseskalationen zu verhindern, kann nur ein Metastore-Administrator den Besitz einer Ansicht, Funktion oder eines Modells an einen beliebigen Benutzer, Dienstprinzipal oder jede Gruppe im Konto übertragen. Aktuelle Besitzer und Benutzer mit den MANAGE-Berechtigungen sind auf die Übertragung des Besitzes auf ihren Benutzernamen oder auf eine Gruppe beschränkt, in der sie Mitglied sind.

Tipp

Das Übertragen des Besitzes einer Ansicht oder einer Metrikansicht zu einer Gruppe ermöglicht die gemeinsame Bearbeitung. Wenn eine Gruppe eine Ansicht oder Metrikansicht besitzt, können alle Gruppenmitglieder deren Definition bearbeiten, während der Datenzugriff auf die Berechtigungen der Gruppe beschränkt bleibt. Ausführliche Anleitungen finden Sie unter "Aktivieren der gemeinsamen Bearbeitung".

Hinweis

Materialisierte Ansichten und Streaming-Tabellen, die mit Databricks SQL erstellt wurden, können im Besitz übertragen werden. Ausführliche Informationen finden Sie unter Ändern des Besitzers einer materialisierten Ansicht und Ändern des Besitzers einer Streamingtabelle.

Materialisierte Ansichten und Streamingtabellen, die mit Lakeflow Spark Declarative Pipelines erstellt wurden, können nicht direkt übertragen werden. Ändern Sie stattdessen den Run-as-Benutzer der Pipeline, die die Datensätze besitzt. Bei der nächsten Aktualisierung wird der Besitzer auf die Ausführung als Benutzer aktualisiert. Siehe Festlegen der Ausführung als Benutzer.

Catalog-Explorer

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.

  2. Wählen Sie das Objekt aus, z. B. einen Katalog, ein Schema, eine Tabelle, eine Sicht, einen externen Speicherort oder Speicheranmeldeinformationen.

    Die Navigation zum Objekt hängt vom Objekt ab. Kataloge, Schemas und die Inhalte von Schemas (z. B. Tabellen und Volumes) können im linken Katalogbereich ausgewählt werden. Sie können andere Objekte, z. B. externe Speicherorte oder Delta-Freigabefreigaben, finden, indem Sie auf das Zahnradsymbol oberhalb des Katalogbereichs klicken und die Objektkategorie im Menü auswählen.

    Für die meisten Objekte wird der Besitzer auf der Registerkarte Übersicht auf der Seite „Objektdetails“ angezeigt. Bei einigen Objekten, z. B. externen Speicherorten, wird sie oben auf der Objektdetailseite angezeigt.

  3. Klicken Sie auf das Bearbeitungssymbol Symbol „Bearbeiten“ neben dem Besitzer.

  4. Suchen Sie nach einer Gruppe, einem Benutzer oder einem Dienstprinzipal und wählen Sie diese aus.

  5. Klicken Sie auf Speichern.

SQL

Führen Sie den folgenden SQL-Befehl in einem Notebook oder SQL-Abfrage-Editor aus. Ersetzen Sie folgende Platzhalterwerte:

  • <securable-type>: Der Typ des sicherungsfähigen Objekts, wie CATALOG oder TABLE. METASTORE wird nicht als sicherungsfähiges Objekt in diesem Befehl unterstützt.
  • <securable-name>: Der Name des sicherungsfähigen Objekts. Wenn Sie ein Schema oder den Inhalt eines Schemas ändern, müssen Sie den vollständigen dreistufigen Namespace (catalog.schema.object) verwenden, es sei denn, Sie haben den übergeordneten Katalog und/oder das Schema bereits angegeben.
  • <principal> ist ein Benutzer, ein Dienstprinzipal (dargestellt durch seinen AnwendungId-Wert) oder eine Gruppe. Sie müssen Benutzerkonten, Dienstprinzipale und Gruppennamen, die Sonderzeichen in Backticks (` `) enthalten, einschließen. Siehe Prinzipal.
ALTER <securable-type> <securable-name> OWNER TO <principal>;

So übertragen Sie beispielsweise den Besitz der Tabelle orders an die Gruppe accounting:

ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;