Bevoegdheden beheren in Unity Catalog

Op deze pagina wordt uitgelegd hoe u bevoegdheden kunt verlenen, intrekken en inspecteren voor beveiligbare objecten in Unity Catalog en hoe u het eigendom van objecten beheert. Zie de concepten van het Unity Catalog-machtigingsmodel voor conceptuele achtergrond van het machtigingsmodel, overname van bevoegdheden en eigendom.

Wie kan 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 Beheerdersbevoegdheden 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. Eigenaren kunnen andere gebruikers de MANAGE bevoegdheid voor het object verlenen, zodat gebruikers bevoegdheden voor het object kunnen beheren. Zie Objecteigendom beheren.

Er kunnen op een van de volgende manieren bevoegdheden worden verleend:

  • De eigenaar van het object.
  • De eigenaar van de catalogus of het schema dat het object bevat.
  • Een gebruiker met de MANAGE bevoegdheid voor het object.
  • Een metastore-beheerder.

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 SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION en CREATE MATERIALIZED VIEW bevoegdheden voor het default schema in de catalogus.

Zie Aan de slag met Unity Catalog voor meer informatie.

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 Unity Catalog-machtigingssoort. Zie Bevoegdheidstypen.
  • <securable-type>: Het type beveiligbaar object, zoals CATALOG of TABLE. Beveiligbare objecten weergeven
  • <securable-name>: De naam van het beveiligde object. 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, serviceprincipal (vertegenwoordigd door de waarde applicationId) of groep. U moet gebruikers, service-principals en groepsnamen insluiten die speciale tekens bevatten in backticks (` `). Zie Principal.

Subsidies voor een object weergeven

Notitie

Momenteel kunnen gebruikers met de bevoegdheid MANAGE voor een object niet alle subsidies voor dat object weergeven in de INFORMATION_SCHEMA. In plaats daarvan toont de INFORMATION_SCHEMA gebruikers alleen hun eigen machtigingen op het object. Dit gedrag wordt in de toekomst gecorrigeerd.

Gebruikers met MANAGE bevoegdheid kunnen alle subsidies voor een object bekijken met behulp van SQL-opdrachten of Catalog Explorer. Zie Bevoegdheden beheren in Unity Catalog.

Vereiste machtigingen:

  • Metastore-beheerders, gebruikers met het READ METADATA of MANAGE privilege op het object, de eigenaar van het object, of de eigenaar van de catalogus of het schema dat het object bevat, kunnen alle toekenningen op het object zien.
  • Als u niet over de bovenstaande machtigingen beschikt, kunt u alleen uw eigen subsidies voor het object bekijken.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.
  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

Mijn subsidies weergeven voor een object

Vereiste machtigingen: U kunt altijd uw eigen subsidies voor een object bekijken.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.
  2. Selecteer het object, zoals een catalogus, schema, tabel of weergave.
  3. Ga naar het tabblad Machtigingen . Als u geen objecteigenaar of metastore-beheerder bent, kunt u alleen uw eigen subsidies voor het object bekijken.

SQL

Voer de volgende SQL-opdracht uit in een notebook of SQL-query-editor om uw subsidies voor een object weer te geven.

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

Machtigingen verlenen voor een object

machtigingen vereist: Metastore-beheerder, de MANAGE-bevoegdheid voor het object, 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 het pictogram Gegevens.Catalogus.
  2. Selecteer het object, zoals een catalogus, schema, tabel of weergave.
  3. Ga naar het tabblad Machtigingen .
  4. Klik op Toestaan.
  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`;

Geregistreerde modellen zijn een vorm van functie. Als u een bevoegdheid voor een model wilt verlenen, moet u gebruiken GRANT ON FUNCTION. Als u bijvoorbeeld de groep ml-team-acme de EXECUTE bevoegdheid voor het model prod.ml_team.iris_modelwilt verlenen, gebruikt u:

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

Machtigingen voor een object intrekken

machtigingen vereist: Metastore-beheerder, de MANAGE-bevoegdheid voor het object, 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 het pictogram Gegevens.Catalogus.
  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> FROM <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 FROM `finance-team`;

Een REVOKE instructie slaagt zelfs als de opgegeven bevoegdheden aanvankelijk niet zijn verkregen. Het zorgt ervoor dat de bevoegdheden niet aanwezig zijn, ongeacht hun vorige status.

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 het pictogram Gegevens.Catalogus.
  2. Klik bovenaan het deelvenster Catalogus op het tandwielpictogram en selecteer Metastore.
  3. Klik op 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 het pictogram Gegevens.Catalogus.
  2. Klik bovenaan het deelvenster Catalogus op het tandwielpictogram en selecteer 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 het pictogram Gegevens.Catalogus.
  2. Klik bovenaan het deelvenster Catalogus op het tandwielpictogram en selecteer 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 FROM <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 verondersteld.

Eigendom van objecten beheren

De eigenaar van een object weergeven

U kunt Catalog Explorer of SQL-instructies gebruiken om de eigenaar van een object weer te geven.

Vereiste machtigingen: elke gebruiker met de BROWSE bevoegdheid voor het object of een bovenliggend object kan de objecteigenaar bekijken.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.

  2. Selecteer het object, zoals een catalogus, schema, tabel, weergave, volume, externe locatie of opslagreferenties.

    Hoe u naar het object navigeert, is afhankelijk van het object. Catalogi, schema's en de inhoud van schema's (zoals tabellen en volumes) kunnen worden geselecteerd in het linkerdeelvenster Catalogus. U kunt andere objecten, zoals externe locaties of OpenSharing-shares, vinden door op het tandwielpictogram boven in het deelvenster Catalogus te klikken en de objectcategorie in het menu te selecteren.

    Voor de meeste objecten wordt de eigenaar weergegeven op het tabblad Overzicht op de pagina met objectdetails. Voor sommige objecten, zoals externe locaties, wordt deze boven aan de pagina met objectdetails weergegeven.

SQL

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor. Vervang de waarden van de tijdelijke aanduidingen:

  • <securable-type>: Het type beveiligbaar, zoals CATALOG of TABLE.
  • <catalog>: De bovenliggende catalogus wanneer u een schema of de inhoud van een schema bekijkt.
  • <schema>: het bovenliggende schema als u de inhoud van een schema bekijkt, zoals een tabel of weergave.
  • <securable-name>: De naam van het beveiligbare object.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

Eigendom overdragen

U kunt Catalog Explorer - of SQL-instructies gebruiken om de eigenaar van een object over te dragen.

machtigingen die zijn vereist: u kunt het objecteigendom overdragen als u de huidige eigenaar bent, een metastore-beheerder, de eigenaar van de container (de catalogus voor een schema, het schema voor een tabel) of een gebruiker met de bevoegdheid MANAGE voor het object. OpenSharing-shareobjecten zijn een uitzondering: alleen een metastore-beheerder kan het eigendom van een share overdragen.

Om escalatie van bevoegdheden te voorkomen, kan alleen een metastore-beheerder het eigendom van een weergave, functie of model overdragen aan een gebruiker, service-principal of groep in het account. Huidige eigenaren en gebruikers met de MANAGE-bevoegdheid zijn beperkt tot het overdragen van eigendom aan hun gebruikersnaam of aan een groep waarvan ze lid zijn.

Tip

Door het eigendom van een weergave of metrische weergave over te dragen aan een groep, kan er gezamenlijk worden bewerkt. Wanneer een groep eigenaar is van een weergave of metrische weergave, kunnen alle groepsleden de definitie bewerken terwijl de toegang tot gegevens beperkt blijft tot wat de groep gemachtigd heeft om te zien. Zie Samenwerken inschakelen voor gedetailleerde richtlijnen.

Notitie

Gerealiseerde weergaven en streamingtabellen, gemaakt met Databricks SQL, kunnen van eigenaar wisselen. Zie De eigenaar van een gerealiseerde weergave wijzigen en de eigenaar van een streamingtabel wijzigen voor meer informatie.

Gematerialiseerde weergaven en streamingtabellen die met Lakeflow-pijplijnen zijn gemaakt, kunnen niet rechtstreeks van eigenaar worden overgedragen. Wijzig in plaats daarvan de run-as-gebruiker van de pijplijn die eigenaar is van de gegevenssets. Bij de volgende vernieuwing wordt de eigenaar bijgewerkt naar de run-as-gebruiker. Zie De run-as-gebruiker instellen.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op het pictogram Gegevens.Catalogus.

  2. Selecteer het object, zoals een catalogus, schema, tabel, weergave, externe locatie of opslagreferenties.

    Hoe u naar het object navigeert, is afhankelijk van het object. Catalogi, schema's en de inhoud van schema's (zoals tabellen en volumes) kunnen worden geselecteerd in het linkerdeelvenster Catalogus. U kunt andere objecten, zoals externe locaties of OpenSharing-shares, vinden door op het tandwielpictogram boven in het deelvenster Catalogus te klikken en de objectcategorie in het menu te selecteren.

    Voor de meeste objecten wordt de eigenaar weergegeven op het tabblad Overzicht op de pagina met objectdetails. Voor sommige objecten, zoals externe locaties, wordt deze boven aan de pagina met objectdetails weergegeven.

  3. Klik op het bewerkingspictogram naast de eigenaar.

  4. Zoek en selecteer een groep, gebruiker of service-principal.

  5. Klik op Opslaan.

SQL

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor. Vervang de waarden van de tijdelijke aanduidingen:

  • <securable-type>: Het type beveiligbaar object, zoals CATALOG of TABLE. METASTORE wordt niet ondersteund als een beveiligbaar object in deze opdracht.
  • <securable-name>: De naam van het beveiligde object. Als u een schema of de inhoud van een schema wijzigt, moet u de volledige naamruimte op drie niveaus (catalog.schema.object) gebruiken, tenzij u de bovenliggende catalogus en/of het schema al hebt opgegeven.
  • <principal> is een gebruiker, serviceprincipal (vertegenwoordigd door de waarde applicationId) of groep. U moet gebruikers, service-principals en groepsnamen insluiten die speciale tekens bevatten in backticks (` `). Zie Principal.
ALTER <securable-type> <securable-name> OWNER TO <principal>;

Als u bijvoorbeeld het eigendom van de orders tabel wilt overdragen aan de accounting groep:

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