Condividi tramite


Gestire i privilegi nel Catalogo Unity

Questo articolo illustra come controllare l'accesso ai dati e ad altri oggetti in Unity Catalog. Per informazioni su come questo modello differisce dal controllo di accesso nel metastore Hive, vedere Usare il catalogo unity e il metastore Hive legacy.

Chi può gestire i privilegi?

Inizialmente, gli utenti non hanno accesso ai dati in un metastore. Gli amministratori dell'account Azure Databricks, gli amministratori dell'area di lavoro e i metastore dispongono dei privilegi predefiniti per la gestione di Unity Catalog. Vedere Privilegi di amministratore nel catalogo unity.

Tutti gli oggetti a protezione diretta in Unity Catalog hanno un proprietario. I proprietari di oggetti dispongono di tutti i privilegi per tale oggetto, inclusa la possibilità di concedere privilegi ad altre entità. Vedere Gestire la proprietà degli oggetti del catalogo Unity.

I privilegi possono essere concessi da un amministratore del metastore, dal proprietario di un oggetto o dal proprietario del catalogo o dello schema contenente l'oggetto. Gli amministratori dell'account possono anche concedere privilegi direttamente in un metastore.

Privilegi del catalogo dell'area di lavoro

Se l'area di lavoro è stata abilitata automaticamente per Unity Catalog, l'area di lavoro viene collegata a un metastore per impostazione predefinita e viene creato un catalogo dell'area di lavoro per l'area di lavoro nel metastore. Gli amministratori dell'area di lavoro sono i proprietari predefiniti del catalogo delle aree di lavoro. I proprietari possono gestire i privilegi nel catalogo dell'area di lavoro e in tutti gli oggetti figlio.

Tutti gli utenti dell'area di lavoro ricevono il USE CATALOG privilegio nel catalogo dell'area di lavoro. Gli utenti dell'area di lavoro ricevono anche i USE SCHEMAprivilegi , CREATE VOLUMECREATE TABLE, CREATE MODEL, CREATE FUNCTION, e CREATE MATERIALIZED VIEW sullo default schema nel catalogo.

Per altre informazioni, vedere Abilitazione automatica del catalogo Unity.

Modello di ereditarietà

Gli oggetti a protezione diretta nel catalogo unity sono gerarchici e i privilegi vengono ereditati verso il basso. L'oggetto di livello più alto da cui vengono ereditati i privilegi è il catalogo. Ciò significa che la concessione di un privilegio per un catalogo o uno schema concede automaticamente il privilegio a tutti gli oggetti correnti e futuri all'interno del catalogo o dello schema. Ad esempio, se si assegna a un utente il SELECT privilegio su un catalogo, tale utente sarà in grado di selezionare (leggere) tutte le tabelle e le viste in tale catalogo. I privilegi concessi in un metastore del Catalogo Unity non vengono ereditati.

Gerarchia di oggetti del catalogo Unity

Ai proprietari di un oggetto vengono concessi automaticamente tutti i privilegi per tale oggetto. Inoltre, i proprietari di oggetti possono concedere privilegi all'oggetto stesso e a tutti i relativi oggetti figlio. Ciò significa che i proprietari di uno schema non dispongono automaticamente di tutti i privilegi per le tabelle nello schema, ma possono concedersi privilegi sulle tabelle nello schema.

Nota

Se è stato creato il metastore del catalogo Unity durante l'anteprima pubblica (prima del 25 agosto 2022), si potrebbe essere in un modello di privilegio precedente che non supporta il modello di ereditarietà corrente. È possibile eseguire l'aggiornamento al modello di privilegio versione 1.0 per ottenere l'ereditarietà dei privilegi. Vedere Eseguire l'aggiornamento all'ereditarietà dei privilegi.

Mostrare, concedere e revocare privilegi

È possibile gestire i privilegi per gli oggetti metastore usando i comandi SQL, l'interfaccia della riga di comando di Databricks, il provider Databricks Terraform o Esplora cataloghi.

Nei comandi SQL seguenti sostituire questi valori segnaposto:

  • <privilege-type> è un tipo di privilegio catalogo Unity. Vedere Tipi di privilegi.
  • <securable-type>: tipo di oggetto a protezione diretta, ad esempio CATALOG o TABLE. Vedere Oggetti a protezione diretta
  • <securable-name>: nome dell'entità a protezione diretta. Se il tipo a protezione diretta è METASTORE, non specificare il nome dell'entità a protezione diretta. Si presuppone che sia il metastore collegato all'area di lavoro.
  • <principal> è un utente, un'entità servizio (rappresentata dal relativo valore applicationId) o un gruppo. È necessario racchiudere utenti, entità servizio e nomi di gruppo che includono caratteri speciali nei backtick (` `). Vedere Principal.See Principal.

Mostra le concessioni per gli oggetti in un metastore del catalogo Unity

Autorizzazioni necessarie: amministratore metastore, proprietario dell'oggetto, proprietario del catalogo o dello schema che contiene l'oggetto. È anche possibile visualizzare le proprie concessioni.

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
  3. Passare alla scheda Autorizzazioni .

SQL

Eseguire il comando SQL seguente in un notebook o in un editor di query SQL. È possibile visualizzare le concessioni per un'entità specifica oppure visualizzare tutte le concessioni in un oggetto a protezione diretta.

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

Ad esempio, il comando seguente mostra tutte le concessioni in uno schema denominato default nel catalogo padre denominato main:

  SHOW GRANTS ON SCHEMA main.default;

Il comando restituisce:

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

Concedere autorizzazioni per gli oggetti in un metastore del catalogo Unity

Autorizzazioni necessarie: amministratore metastore, proprietario dell'oggetto o proprietario del catalogo o dello schema che contiene l'oggetto .

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
  3. Passare alla scheda Autorizzazioni .
  4. Fare clic su Concedi.
  5. Immettere l'indirizzo di posta elettronica per un utente o il nome di un gruppo.
  6. Selezionare le autorizzazioni da concedere.
  7. Fare clic su OK.

SQL

Eseguire il comando SQL seguente in un notebook o in un editor di query SQL.

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

Ad esempio, il comando seguente concede a un gruppo denominato finance-team l'accesso per creare tabelle in uno schema denominato default con il catalogo padre denominato 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`;

Revocare le autorizzazioni per gli oggetti in un metastore del catalogo Unity

Autorizzazioni necessarie: amministratore metastore, proprietario dell'oggetto o proprietario del catalogo o dello schema che contiene l'oggetto .

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
  3. Passare alla scheda Autorizzazioni .
  4. Selezionare un privilegio concesso a un utente, a un'entità servizio o a un gruppo.
  5. Fare clic su Revoca.
  6. Per confermare, fare clic su Revoca.

SQL

Eseguire il comando SQL seguente in un notebook o in un editor di query SQL.

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

Ad esempio, il comando seguente revoca l'accesso a un gruppo denominato finance-team per creare tabelle in uno schema denominato default con il catalogo padre denominato main:

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

Visualizzare le concessioni in un metastore

Autorizzazioni necessarie: amministratore del metastore o amministratore dell'account. È anche possibile visualizzare le proprie concessioni in un metastore.

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Accanto all'etichetta della pagina Esplora cataloghi fare clic sull'icona accanto al nome del metastore.
  3. Passare alla scheda Autorizzazioni .

SQL

Eseguire il comando SQL seguente in un notebook o in un editor di query SQL. È possibile visualizzare le concessioni per un'entità specifica oppure visualizzare tutte le concessioni in un metastore.

  SHOW GRANTS [principal] ON METASTORE

Concedere le autorizzazioni per un metastore

Autorizzazioni necessarie: amministratore del metastore o amministratore dell'account.

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Accanto all'etichetta della pagina Esplora cataloghi fare clic sull'icona accanto al nome del metastore.
  3. Nella scheda Autorizzazioni fare clic su Concedi.
  4. Immettere l'indirizzo di posta elettronica per un utente o il nome di un gruppo.
  5. Selezionare le autorizzazioni da concedere.
  6. Fare clic su OK.

SQL

  1. Eseguire il comando SQL seguente in un notebook o in un editor di query SQL.

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

    Quando si concedono privilegi in un metastore, non si include il nome del metastore, perché viene assunto il metastore collegato all'area di lavoro.

Revocare le autorizzazioni in un metastore

Autorizzazioni necessarie: amministratore del metastore o amministratore dell'account.

Esplora cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. Accanto all'etichetta della pagina Esplora cataloghi fare clic sull'icona accanto al nome del metastore.
  3. Nella scheda Autorizzazioni selezionare un utente o un gruppo e fare clic su Revoca.
  4. Per confermare, fare clic su Revoca.

SQL

  1. Eseguire il comando SQL seguente in un notebook o in un editor di query SQL.

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

    Quando si revocano i privilegi in un metastore, non si include il nome del metastore, perché si presuppone che venga utilizzato il metastore collegato all'area di lavoro.