Bevoegdheden beheren in Unity Catalog

In dit artikel wordt uitgelegd hoe u de toegang tot gegevens en andere objecten in Unity Catalog beheert. Zie Werken met Unity Catalog en de verouderde Hive-metastore voor meer informatie over hoe dit model verschilt van toegangsbeheer in de Hive-metastore.

Wie kunt u bevoegdheden beheren?

In eerste instantie hebben gebruikers geen toegang tot gegevens in een metastore. Azure Databricks-accountbeheerders, werkruimtebeheerders en metastore-beheerders hebben standaardbevoegdheden voor het beheren van Unity Catalog. Zie Beheer bevoegdheden in Unity Catalog.

Alle beveiligbare objecten in Unity Catalog hebben een eigenaar. Objecteigenaren hebben alle bevoegdheden voor dat object, met inbegrip van de mogelijkheid om bevoegdheden te verlenen aan andere principals. Zie Eigendom van Unity Catalog-objecten beheren.

Bevoegdheden kunnen worden verleend door een metastore-beheerder, de eigenaar van een object of de eigenaar van de catalogus of het schema dat het object bevat. Accountbeheerders kunnen ook rechtstreeks bevoegdheden verlenen in een metastore.

Bevoegdheden voor werkruimtecatalogus

Als uw werkruimte automatisch is ingeschakeld voor Unity Catalog, wordt de werkruimte standaard gekoppeld aan een metastore en wordt er een werkruimtecatalogus gemaakt voor uw werkruimte in de metastore. Werkruimtebeheerders zijn de standaardeigenaren van de werkruimtecatalogus. Als eigenaren kunnen ze bevoegdheden voor de werkruimtecatalogus en alle onderliggende objecten beheren.

Alle werkruimtegebruikers ontvangen de USE CATALOG bevoegdheid in de werkruimtecatalogus. Werkruimtegebruikers ontvangen ook de USE SCHEMAbevoegdheden , , CREATE TABLECREATE VOLUMEen CREATE FUNCTIONCREATE MODELCREATE MATERIALIZED VIEW bevoegdheden voor het default schema in de catalogus.

Zie Automatische activering van Unity Catalog voor meer informatie.

Overnamemodel

Beveiligbare objecten in Unity Catalog zijn hiërarchisch en bevoegdheden worden naar beneden overgenomen. Het object op het hoogste niveau waaruit bevoegdheden worden overgenomen, is de catalogus. Dit betekent dat het verlenen van een bevoegdheid voor een catalogus of schema automatisch de bevoegdheid verleent aan alle huidige en toekomstige objecten in de catalogus of het schema. Als u bijvoorbeeld een gebruiker de SELECT bevoegdheid geeft voor een catalogus, kan die gebruiker alle tabellen en weergaven in die catalogus selecteren (lezen). Bevoegdheden die worden verleend aan een Unity Catalog-metastore, worden niet overgenomen.

Unity Catalog-objecthiërarchie

Eigenaren van een object krijgen automatisch alle bevoegdheden voor dat object. Bovendien kunnen objecteigenaren bevoegdheden verlenen voor het object zelf en op alle onderliggende objecten. Dit betekent dat eigenaren van een schema niet automatisch alle bevoegdheden voor de tabellen in het schema hebben, maar dat ze zichzelf bevoegdheden kunnen verlenen voor de tabellen in het schema.

Notitie

Als u uw Unity Catalog-metastore hebt gemaakt tijdens de openbare preview (vóór 25 augustus 2022), bevindt u zich mogelijk in een eerder privilegemodel dat het huidige overnamemodel niet ondersteunt. U kunt upgraden naar Privilege Model versie 1.0 om overname van bevoegdheden op te halen. Zie Upgraden naar overname van bevoegdheden.

Bevoegdheden weergeven, verlenen en intrekken

U kunt bevoegdheden voor metastore-objecten beheren met behulp van SQL-opdrachten, de Databricks CLI, de Databricks Terraform-provider of Catalog Explorer.

Vervang deze tijdelijke aanduidingen in de VOLGENDE SQL-opdrachten:

  • <privilege-type> is een machtigingstype unity-catalogus. Zie Bevoegdheidstypen.
  • <securable-type>: Het type beveiligbaar object, zoals CATALOG of TABLE. Beveiligbare objecten weergeven
  • <securable-name>: De naam van het beveiligbare. Als het beveiligbare type is METASTORE, geeft u de beveiligbare naam niet op. Hierbij wordt ervan uitgegaan dat het de metastore is die is gekoppeld aan de werkruimte.
  • <principal> is een gebruiker, service-principal (vertegenwoordigd door de waarde applicationId) of groep. U moet gebruikers, service-principals en groepsnamen insluiten die speciale tekens bevatten in backticks (` `). Zie Principal.

Subsidies weergeven voor objecten in een Unity Catalog-metastore

Vereiste machtigingen: Metastore-beheerder, de eigenaar van het object, de eigenaar van de catalogus of het schema dat het object bevat. U kunt ook uw eigen subsidies bekijken.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Selecteer het object, zoals een catalogus, schema, tabel of weergave.
  3. Ga naar het tabblad Machtigingen .

Sql

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor. U kunt subsidies voor een specifieke principal weergeven of u kunt alle subsidies voor een beveiligbaar object weergeven.

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

Met de volgende opdracht ziet u bijvoorbeeld alle subsidies voor een schema met de naam Standaard in de bovenliggende catalogus met de naam Main:

  SHOW GRANTS ON SCHEMA main.default;

De opdracht retourneert:

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

Machtigingen verlenen voor objecten in een Unity Catalog-metastore

Vereiste machtigingen: Metastore-beheerder, de eigenaar van het object of de eigenaar van de catalogus of het schema dat het object bevat.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Selecteer het object, zoals een catalogus, schema, tabel of weergave.
  3. Ga naar het tabblad Machtigingen .
  4. Klik op Verlenen.
  5. Voer het e-mailadres in voor een gebruiker of de naam van een groep.
  6. Selecteer de machtigingen die u wilt verlenen.
  7. Klik op OK.

Sql

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor.

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

Met de volgende opdracht verleent u bijvoorbeeld een groep met de naam finance-team toegang om tabellen te maken in een schema met de naam standaard met de bovenliggende catalogus met de naam main:

  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`;

Machtigingen intrekken voor objecten in een Unity Catalog-metastore

Vereiste machtigingen: Metastore-beheerder, de eigenaar van het object of de eigenaar van de catalogus of het schema dat het object bevat.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Selecteer het object, zoals een catalogus, schema, tabel of weergave.
  3. Ga naar het tabblad Machtigingen .
  4. Selecteer een bevoegdheid die is verleend aan een gebruiker, service-principal of groep.
  5. Klik op Intrekken.
  6. Klik op Intrekken om te bevestigen.

Sql

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor.

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

Met de volgende opdracht wordt bijvoorbeeld de toegang van een groep met de naam finance-team ingetrokken om tabellen te maken in een schema met de naam Standaard met de bovenliggende catalogus met de naam Main:

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

Subsidies weergeven in een metastore

Vereiste machtigingen: Metastore-beheerder of accountbeheerder. U kunt ook uw eigen subsidies bekijken op een metastore.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Klik naast het paginalabel Catalogusverkenner op het pictogram naast de naam van de metastore.
  3. Ga naar het tabblad Machtigingen .

Sql

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor. U kunt subsidies voor een specifieke principal weergeven of u kunt alle subsidies in een metastore weergeven.

  SHOW GRANTS [principal] ON METASTORE

Machtigingen verlenen voor een metastore

Vereiste machtigingen: Metastore-beheerder of accountbeheerder.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Klik naast het paginalabel Catalogusverkenner op het pictogram naast de naam van de metastore.
  3. Klik op het tabblad Machtigingen op Verlenen.
  4. Voer het e-mailadres in voor een gebruiker of de naam van een groep.
  5. Selecteer de machtigingen die u wilt verlenen.
  6. Klik op OK.

Sql

  1. Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor.

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

    Wanneer u bevoegdheden verleent voor een metastore, neemt u de naam van de metastore niet op, omdat de metastore die aan uw werkruimte is gekoppeld, wordt aangenomen.

Machtigingen voor een metastore intrekken

Vereiste machtigingen: Metastore-beheerder of accountbeheerder..

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalogus.
  2. Klik naast het paginalabel Catalogusverkenner op het pictogram naast de naam van de metastore.
  3. Selecteer op het tabblad Machtigingen een gebruiker of groep en klik op Intrekken.
  4. Klik op Intrekken om te bevestigen.

Sql

  1. Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor.

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

    Wanneer u bevoegdheden voor een metastore intrekt, neemt u de naam van de metastore niet op, omdat de metastore die aan uw werkruimte is gekoppeld, wordt aangenomen.