Freigeben über


Verwalten von Berechtigungen in Unity Catalog

In diesem Artikel erfahren Sie, wie Sie den Zugriff auf Daten sowie auf andere Objekte in Unity Catalog steuern. Wie sich dieses Modell von der Zugriffssteuerung in Hive-Metastore unterscheidet, erfahren Sie unter Arbeiten mit Unity Catalog und dem Legacy-Hive-Metastore.

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. Weitere Informationen finden Sie unter Verwalten des Unity Catalog-Objektbesitzes.

Berechtigungen können entweder von einem Metastore-Administrator, dem Besitzer eines Objekts oder aber dem Besitzer des Katalogs oder Schemas, in dem das Objekt enthalten ist, gewährt werden. Kontoadmins können auch Berechtigungen direkt in einem Metastore gewähren.

Arbeitsbereichkatalogberechtigungen

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.

Vererbungsmodell

Sicherungsobjekte in Unity Catalog sind hierarchisch, und Berechtigungen werden abwärts vererbt. Das Objekt der höchsten Ebene, das Berechtigungen vererbt, ist der Katalog. Dies bedeutet: Durch das Gewähren einer Berechtigung für einen Katalog oder ein Schema wird die Berechtigung für alle aktuellen und zukünftigen Objekte im Katalog oder Schema automatisch gewährt. Wenn Sie einer Benutzerin oder einem Benutzer beispielsweise die Berechtigung SELECT für einen Katalog erteilen, kann diese oder dieser alle Tabellen und Ansichten in diesem Katalog auswählen (lesen). Die für einen Unity Catalog-Metastore gewährten Berechtigungen werden nicht vererbt.

Unity Catalog-Objekthierarchie

Den Besitzern eines Objekts werden automatisch alle Berechtigungen für dieses Objekt und für alle untergeordneten Objekte gewährt. Darüber hinaus können Objektbesitzer Berechtigungen für das Objekt selbst und für alle untergeordneten Objekte gewähren. Dies bedeutet, dass Besitzer*innen eines Schemas nicht automatisch über alle Berechtigungen für die Tabellen im Schema verfügen. Doch Sie können selbst sich Berechtigungen für die Tabellen im Schema erteilen.

Hinweis

Wenn Sie Ihren Unity Catalog-Metastore während der öffentlichen Vorschau (vor dem 25. August 2022) erstellt haben, verwenden Sie möglicherweise ein früheres Berechtigungsmodell, welches das aktuelle Vererbungsmodell nicht unterstützt. Sie können ein Upgrade auf das Berechtigungsmodell, Version 1.0, durchführen, um die Berechtigungsvererbung zu erhalten. Siehe Upgrade auf Berechtigungsvererbung.

Anzeigen, Erteilen und Widerrufen von Berechtigungen

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 Catalog-Berechtigungstyp. Weitere Informationen finden Sie unter Berechtigungstypen.
  • <securable-type>: Der Typ des sicherungsfähigen Objekts, z. B. 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 Metastore ist.
  • <principal> ist ein Benutzer, Dienstprinzipal (dargestellt durch seinen „applicationId“-Wert) oder eine Gruppe. Sie müssen Benutzerkonten, Dienstprinzipale und Gruppennamen, die Sonderzeichen in Backticks (` `) enthalten, einschließen. Siehe Prinzipal.

Anzeigen von Zuweisungen für Objekte in einem Unity Catalog-Metastore

Erforderliche Berechtigungen:

  • Metastore-Administratoren, der Besitzer des Objekts oder der Besitzer des Katalogs oder Schemas, der das Objekt enthält, können alle Zuschüsse für das Objekt anzeigen.
  • Wenn Sie nicht über die oben genannten Berechtigungen verfügen, können Sie nur die Dinge für das Objekt anzeigen, für die Sie berechtigt sind.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“ 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

Anzeigen meiner Zuweisungen für Objekte in einem Unity Catalog-Metastore

Berechtigungen erforderlich: Sie können jederzeit Ihre eigenen Zuweisungen für ein Objekt anzeigen.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“ 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. Wenn Sie kein Objektbesitzer oder Metastore-Administrator sind, können Sie nur Ihre eigenen Zuweisungen für das Objekt anzeigen.

SQL

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

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

Erteilen von Berechtigungen für Objekte in einem Unity Catalog-Metastore

Berechtigungen erforderlich: Metastoreadmin, Besitzerin oder Besitzer des Objekts oder Besitzerin oder Besitzer des Katalogs oder des Schemas, der bzw. das das Objekt enthält.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“ 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 Erteilen.
  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. Klicken Sie auf OK.

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 einem Modell eine Berechtigung zu gewähren, müssen Sie GRANT ON FUNCTION verwenden. Um beispielsweise der Gruppe ml-team-acme die Berechtigung EXECUTE für das Modell prod.ml_team.iris_model zu gewähren, verwenden Sie Folgendes:

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

Widerrufen von Berechtigungen für Objekte in einem Unity Catalog-Metastore

Berechtigungen erforderlich: Metastoreadmin, Besitzerin oder Besitzer des Objekts oder Besitzerin oder Besitzer des Katalogs oder des Schemas, der bzw. das das Objekt enthält.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Symbol „Katalog“ 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> TO <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 TO `finance-team`;

Anzeigen von Zuweisungen in einem Metastore

Erforderliche Berechtigungen: Metastore-Admin oder Kontoadmin. Sie können auch Ihre eigenen Zuweisungen in einem Metastore anzeigen.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Katalogsymbol Katalog.
  2. Klicken Sie neben der Katalog-Explorer-Seitenbezeichnung auf das Symbol neben dem Metastorenamen.
  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 in einem Metastore anzeigen.

  SHOW GRANTS [principal] ON METASTORE

Erteilen von Berechtigungen für einen Metastore

Erforderliche Berechtigungen: Metastore-Admin oder Kontoadmin.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Katalogsymbol Katalog.
  2. Klicken Sie neben der Katalog-Explorer-Seitenbezeichnung auf das Symbol neben dem Metastorenamen.
  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. Klicken Sie auf OK.

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: Metastore-Admin oder Kontoadmin.

Katalog-Explorer

  1. Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich auf Katalogsymbol Katalog.
  2. Klicken Sie neben der Katalog-Explorer-Seitenbezeichnung auf das Symbol neben dem Metastorenamen.
  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.