Hantera privilegier i Unity Catalog

Den här artikeln beskriver hur du styr åtkomsten till data och andra objekt i Unity Catalog. Mer information om hur den här modellen skiljer sig från åtkomstkontroll i Hive-metaarkivet finns i Arbeta med Unity Catalog och det äldre Hive-metaarkivet.

Vem kan hantera privilegier?

Inledningsvis har användarna ingen åtkomst till data i ett metaarkiv. Azure Databricks-kontoadministratörer, arbetsyteadministratörer och metaarkivadministratörer har standardbehörighet för att hantera Unity Catalog. Se Administratörsbehörigheter i Unity Catalog.

Alla skyddsbara objekt i Unity Catalog har en ägare. Objektägare har alla behörigheter för objektet, inklusive möjligheten att bevilja behörigheter till andra huvudnamn. Se Hantera objektägarskap för Unity Catalog.

Privilegier kan beviljas av antingen en metaarkivadministratör, ägaren av ett objekt eller ägaren av katalogen eller schemat som innehåller objektet. Kontoadministratörer kan också bevilja behörigheter direkt i ett metaarkiv.

Katalogbehörigheter för arbetsytor

Om din arbetsyta aktiverades automatiskt för Unity Catalog kopplas arbetsytan till ett metaarkiv som standard och en arbetsytekatalog skapas för arbetsytan i metaarkivet. Arbetsyteadministratörer är standardägare för arbetsytekatalogen. Som ägare kan de hantera behörigheter i arbetsytekatalogen och alla underordnade objekt.

Alla arbetsyteanvändare får behörigheten USE CATALOG i arbetsytekatalogen. Arbetsyteanvändare får också behörigheterna USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODELoch CREATE MATERIALIZED VIEW CREATE FUNCTIONi default schemat i katalogen.

Mer information finns i Automatisk aktivering av Unity Catalog.

Arvsmodell

Skyddsbara objekt i Unity Catalog är hierarkiska och privilegier ärvs nedåt. Det objekt på högsta nivån som privilegier ärvs från är katalogen. Det innebär att beviljandet av ett privilegium för en katalog eller ett schema automatiskt ger privilegium till alla aktuella och framtida objekt i katalogen eller schemat. Om du till exempel ger en användare behörighet i SELECT en katalog kan användaren välja (läsa) alla tabeller och vyer i katalogen. Privilegier som beviljas i ett Unity Catalog-metaarkiv ärvs inte.

Objekthierarki för Unity Catalog

Ägare av ett objekt beviljas automatiskt alla behörigheter för objektet. Dessutom kan objektägare bevilja behörigheter för själva objektet och för alla underordnade objekt. Det innebär att ägare av ett schema inte automatiskt har alla behörigheter för tabellerna i schemat, men de kan ge sig själva behörigheter för tabellerna i schemat.

Kommentar

Om du skapade unity-katalogmetaarkivet under den offentliga förhandsversionen (före den 25 augusti 2022) kanske du använder en tidigare behörighetsmodell som inte stöder den aktuella arvsmodellen. Du kan uppgradera till Privilege Model version 1.0 för att hämta arv av privilegier. Se Uppgradera till arv av privilegier.

Visa, bevilja och återkalla behörigheter

Du kan hantera behörigheter för metaarkivobjekt med hjälp av SQL-kommandon, Databricks CLI, Databricks Terraform-providern eller Katalogutforskaren.

I SQL-kommandona som följer ersätter du dessa platshållarvärden:

  • <privilege-type> är en behörighetstyp för Unity Catalog. Se Behörighetstyper.
  • <securable-type>: Typen av skyddsbart objekt, till exempel CATALOG eller TABLE. Se Skyddsbara objekt
  • <securable-name>: Namnet på det säkra. Om den skyddsbara typen är METASTOREanger du inte det skyddsbara namnet. Det antas vara metaarkivet som är kopplat till arbetsytan.
  • <principal> är en användare, tjänstens huvudnamn (representeras av dess applicationId-värde) eller grupp. Du måste omsluta användare, tjänstens huvudnamn och gruppnamn som innehåller specialtecken i backticks (` `). Se Huvudnamn.

Visa bidrag för objekt i ett Unity Catalog-metaarkiv

Behörigheter som krävs:

  • Metaarkivadministratörer, objektets ägare eller ägaren av katalogen eller schemat som innehåller objektet kan se alla bidrag för objektet.
  • Om du inte har ovanstående behörigheter kan du bara visa dina egna bidrag för objektet.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Välj objektet, till exempel en katalog, ett schema, en tabell eller en vy.
  3. Gå till fliken Behörigheter .

SQL

Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare. Du kan visa bidrag för ett specifikt huvudnamn, eller så kan du visa alla bidrag för ett skyddsbart objekt.

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

Följande kommando visar till exempel alla bidrag i ett schema med namnet default i den överordnade katalogen med namnet main:

  SHOW GRANTS ON SCHEMA main.default;

Kommandot returnerar:

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

Visa mina bidrag för objekt i ett Unity Catalog-metaarkiv

Behörigheter som krävs: Du kan alltid visa egna bidrag för ett objekt.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Välj objektet, till exempel en katalog, ett schema, en tabell eller en vy.
  3. Gå till fliken Behörigheter . Om du inte är objektägare eller metaarkivadministratör kan du bara visa dina egna bidrag för objektet.

SQL

Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare för att visa dina bidrag för ett objekt.

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

Bevilja behörigheter för objekt i ett Unity Catalog-metaarkiv

Behörigheter som krävs: Metaarkivadministratör, objektets ägare eller ägaren av katalogen eller schemat som innehåller objektet.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Välj objektet, till exempel en katalog, ett schema, en tabell eller en vy.
  3. Gå till fliken Behörigheter .
  4. Klicka på Bevilja.
  5. Ange e-postadressen för en användare eller namnet på en grupp.
  6. Välj de behörigheter som ska beviljas.
  7. Klicka på OK.

SQL

Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare.

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

Följande kommando ger till exempel en grupp med namnet finance-team åtkomst för att skapa tabeller i ett schema med namnet default med den överordnade katalogen med namnet 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`;

Observera att registrerade modeller är en typ av funktion. Om du vill bevilja en behörighet för en modell måste du använda GRANT ON FUNCTION. Om du till exempel vill ge gruppen ml-team-acme EXECUTE behörigheten för modellen prod.ml_team.iris_modelanvänder du:

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

Återkalla behörigheter för objekt i ett Unity Catalog-metaarkiv

Behörigheter som krävs: Metaarkivadministratör, objektets ägare eller ägaren av katalogen eller schemat som innehåller objektet.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Välj objektet, till exempel en katalog, ett schema, en tabell eller en vy.
  3. Gå till fliken Behörigheter .
  4. Välj en behörighet som har beviljats en användare, tjänstens huvudnamn eller grupp.
  5. Klicka på Återkalla.
  6. Bekräfta genom att klicka på Återkalla.

SQL

Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare.

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

Följande kommando återkallar till exempel en grupp med namnet finance-team-åtkomst för att skapa tabeller i ett schema med namnet default med den överordnade katalogen med namnet main:

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

Visa bidrag i ett metaarkiv

Behörigheter som krävs: Metaarkivadministratör eller kontoadministratör. Du kan också visa dina egna bidrag i ett metaarkiv.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Bredvid sidetiketten Katalogutforskaren klickar du på ikonen bredvid metaarkivets namn.
  3. Gå till fliken Behörigheter .

SQL

Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare. Du kan visa bidrag för ett specifikt huvudnamn eller visa alla bidrag i ett metaarkiv.

  SHOW GRANTS [principal] ON METASTORE

Bevilja behörigheter för ett metaarkiv

Behörigheter som krävs: Metaarkivadministratör eller kontoadministratör.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Bredvid sidetiketten Katalogutforskaren klickar du på ikonen bredvid metaarkivets namn.
  3. På fliken Behörigheter klickar du på Bevilja.
  4. Ange e-postadressen för en användare eller namnet på en grupp.
  5. Välj de behörigheter som ska beviljas.
  6. Klicka på OK.

SQL

  1. Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare.

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

    När du beviljar behörigheter för ett metaarkiv inkluderar du inte metaarkivets namn, eftersom metaarkivet som är kopplat till arbetsytan antas.

Återkalla behörigheter för ett metaarkiv

Behörigheter som krävs: Metaarkivadministratör eller kontoadministratör..

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på Katalogikon Katalog.
  2. Bredvid sidetiketten Katalogutforskaren klickar du på ikonen bredvid metaarkivets namn.
  3. På fliken Behörigheter väljer du en användare eller grupp och klickar på Återkalla.
  4. Bekräfta genom att klicka på Återkalla.

SQL

  1. Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare.

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

    När du återkallar behörigheter för ett metaarkiv inkluderar du inte metaarkivets namn eftersom metaarkivet som är kopplat till arbetsytan antas.