Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina illustra come concedere, revocare ed esaminare i privilegi per gli oggetti a protezione diretta di Unity Catalog e come gestire la proprietà degli oggetti. Per informazioni concettuali sul modello di autorizzazioni, sull'ereditarietà dei privilegi e sulla proprietà, vedere Concetti relativi al modello di autorizzazioni del catalogo Unity.
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. Consulta Privilegi di amministratore in Unity Catalog.
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à. I proprietari possono concedere ad altri utenti il privilegio MANAGE per l'oggetto, che consente agli utenti di gestire i privilegi per l'oggetto. Vedere Gestire la proprietà dell'oggetto.
I privilegi possono essere concessi da uno dei seguenti:
- Proprietario dell'oggetto.
- Proprietario del catalogo o dello schema che contiene l'oggetto .
- Un utente con il privilegio
MANAGEper l'oggetto . - Un amministratore del metastore.
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 il catalogo Unity, l'area di lavoro è collegata a un metastore per impostazione predefinita e viene creato un catalogo dell'area di lavoro nel metastore. Gli amministratori dell'area di lavoro sono i proprietari predefiniti del catalogo delle aree di lavoro. I titolari possono gestire i privilegi sul catalogo dell'area di lavoro e su tutti gli oggetti figlio.
Tutti gli utenti dell'area di lavoro ricevono il privilegio USE CATALOG sul catalogo dell'area di lavoro. Gli utenti dell'area di lavoro ricevono anche i privilegi USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION e CREATE MATERIALIZED VIEW sullo schema default nel catalogo.
Per altre informazioni, consultare Abilitazione automatica del catalogo Unity.
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 di Unity Catalog. Vedere Tipi di privilegi. -
<securable-type>: tipo di oggetto a protezione diretta, ad esempioCATALOGoTABLE. Vedere Oggetti securizzabili -
<securable-name>: nome dell'oggetto proteggibile. 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 gli utenti, i mandanti del servizio e i nomi dei gruppi che includono caratteri speciali tra apici inversi (` `). Si veda Principale
Mostra le concessioni per un oggetto
Nota
Attualmente, gli utenti con privilegi relativi a MANAGE per un oggetto non possono visualizzare tutte le autorizzazioni per tale oggetto nel INFORMATION_SCHEMA. Al contrario, il INFORMATION_SCHEMA mostra solo le concessioni personalizzate per l'oggetto . Questo comportamento verrà corretto in futuro.
Gli utenti con privilegi MANAGE possono visualizzare tutte le concessioni in un oggetto usando comandi SQL o Esplora cataloghi. Consultare la gestione dei privilegi di Unity Catalog.
Autorizzazioni necessarie:
- Gli amministratori metastore, gli utenti con il privilegio
MANAGEsull'oggetto, il proprietario dell'oggetto o il proprietario del catalogo o dello schema che contiene l'oggetto possono visualizzare tutte le concessioni sull'oggetto. - Se non si dispone delle autorizzazioni precedenti, è possibile visualizzare solo le proprie concessioni per l'oggetto .
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
- Passare alla scheda Autorizzazioni .
SQL
Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL. È possibile visualizzare le autorizzazioni per un'entità specifica oppure visualizzare tutte le autorizzazioni su un oggetto proteggibile.
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
Mostra le mie concessioni su un oggetto
Autorizzazioni necessarie: è sempre possibile visualizzare le proprie concessioni in un oggetto .
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
- Passare alla scheda Autorizzazioni . Se non si è un proprietario dell'oggetto o un amministratore del metastore, è possibile visualizzare solo le proprie concessioni sull'oggetto.
SQL
Esegui il seguente comando SQL in un notebook o in un editor di query SQL per visualizzare i tuoi permessi su un oggetto.
SHOW GRANTS `<user>@<domain-name>` ON <securable-type> <securable-name>
Concedere autorizzazioni per un oggetto
Autorizzazioni necessarie: amministratore metastore, il privilegio MANAGE per l'oggetto, il proprietario dell'oggetto o il proprietario del catalogo o dello schema che contiene l'oggetto.
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
- Passare alla scheda Autorizzazioni .
- Fare clic su Concedi.
- Immettere l'indirizzo di posta elettronica per un utente o il nome di un gruppo.
- Selezionare le autorizzazioni da concedere.
- Fare clic su OK.
SQL
Eseguire il seguente comando SQL in un notebook o nell'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`;
Si noti che i modelli registrati sono un tipo di funzione. Per concedere un privilegio a un modello, è necessario usare GRANT ON FUNCTION. Ad esempio, per concedere al gruppo ml-team-acme il EXECUTE privilegio per il modello prod.ml_team.iris_model, si userà:
GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;
Revocare le autorizzazioni per un oggetto
Autorizzazioni necessarie: amministratore metastore, il privilegio MANAGE per l'oggetto, il proprietario dell'oggetto o il proprietario del catalogo o dello schema che contiene l'oggetto.
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella o una vista.
- Passare alla scheda Autorizzazioni .
- Selezionare un privilegio concesso a un utente, a un'entità servizio o a un gruppo.
- Fare clic su Revoca.
- Per confermare, fare clic su Revoca.
SQL
Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL.
REVOKE <privilege-type> ON <securable-type> <securable-name> FROM <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 FROM `finance-team`;
Un'istruzione REVOKE ha esito positivo anche se i privilegi specificati non sono stati concessi inizialmente. Garantisce che i privilegi non siano presenti, indipendentemente dal relativo stato precedente.
Visualizzare i permessi in un metastore
Autorizzazioni necessarie: amministratore del metastore o amministratore dell'account. Puoi anche visualizzare le tue autorizzazioni in un metastore.
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Nella parte superiore del riquadro Catalogo fare clic
Icona a forma di ingranaggio e selezionare Metastore.
- Fare clic sulla scheda Permessi.
SQL
Eseguire il seguente comando SQL in un notebook o nell'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.
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Nella parte superiore del riquadro Catalogo fare clic
Icona a forma di ingranaggio e selezionare Metastore.
- Nella scheda Autorizzazioni fare clic su Concedi.
- Immettere l'indirizzo di posta elettronica per un utente o il nome di un gruppo.
- Selezionare le autorizzazioni da concedere.
- Fare clic su OK.
SQL
Eseguire il seguente comando SQL in un notebook o nell'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, poiché si considera automaticamente il metastore connesso allo spazio di lavoro.
Revocare le autorizzazioni su un metastore
Autorizzazioni necessarie: amministratore del metastore o amministratore dell'account.
Esploratore di cataloghi
- Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
- Nella parte superiore del riquadro Catalogo fare clic
Icona a forma di ingranaggio e selezionare Metastore.
- Nella scheda Autorizzazioni selezionare un utente o un gruppo e fare clic su Revoca.
- Per confermare, fare clic su Revoca.
SQL
Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL.
REVOKE <privilege-type> ON METASTORE FROM <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.
Gestire la proprietà dell'oggetto
Visualizzare il proprietario di un oggetto
È possibile usare Esplora cataloghi o istruzioni SQL per visualizzare il proprietario di un oggetto.
Autorizzazioni necessarie: qualsiasi utente con privilegi BROWSE per l'oggetto o un elemento padre dell'oggetto può visualizzare il proprietario dell'oggetto.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella, una vista, un volume, una posizione esterna o credenziali di archiviazione.
La modalità di spostamento all'oggetto dipende dall'oggetto. I cataloghi, gli Schemi e il contenuto degli Schemi (ad esempio tabelle e volumi) sono selezionabili nel riquadro Catalogo a sinistra. È possibile trovare altri oggetti, come posizioni esterne o condivisioni Delta Sharing, facendo clic sull'icona
sopra il riquadro del Catalogo e selezionando la categoria di oggetti dal menu.
Per la maggior parte degli oggetti, il proprietario viene visualizzato nella scheda Panoramica della pagina dei dettagli dell'oggetto. Per alcuni oggetti, ad esempio posizioni esterne, viene visualizzato nella parte superiore della pagina dei dettagli dell'oggetto.
SQL
Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL. Sostituisci i valori segnaposto:
-
<securable-type>: Tipo di elemento proteggibile, ad esempioCATALOGoTABLE. -
<catalog>: Catalogo padre se si visualizza uno schema o il contenuto di uno schema. -
<schema>: Lo schema padre se si visualizza il contenuto di uno schema, ad esempio una tabella o una vista. -
<securable-name>: Nome dell'oggetto proteggibile.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
Trasferisci proprietà
È possibile usare Esplora cataloghi o istruzioni SQL per trasferire il proprietario di un oggetto.
Autorizzazioni necessarie: è possibile trasferire la proprietà dell'oggetto se si è il proprietario corrente, un amministratore del metastore, il proprietario del contenitore (il catalogo per uno schema, lo schema per una tabella) o un utente con il privilegio MANAGE per l'oggetto. Gli oggetti "Delta Sharing" rappresentano un'eccezione: solo un amministratore del metastore può trasferire la proprietà della condivisione.
Per impedire le escalation dei privilegi, solo un amministratore del metastore può trasferire la proprietà di una visualizzazione, di una funzione o di un modello a qualsiasi utente, entità servizio o gruppo nell'account. I proprietari e gli utenti correnti con privilegi di MANAGE sono limitati al trasferimento della proprietà al nome utente o a un gruppo di cui sono membri.
Suggerimento
Il trasferimento della proprietà di una visualizzazione o di una visualizzazione delle metriche a un gruppo consente la modifica collaborativa. Quando un gruppo è proprietario di una visualizzazione o di una visualizzazione metrica, tutti i membri del gruppo possono modificarne la definizione, mentre l'accesso ai dati rimane limitato a ciò che il gruppo ha l'autorizzazione per visualizzare. Per indicazioni dettagliate, vedere Abilitare la modifica collaborativa.
Nota
Le viste materializzate e le tabelle di streaming create con Databricks SQL possono avere la proprietà trasferita. Per informazioni dettagliate, vedere Modificare il proprietario di una vista materializzata e Modificare il proprietario di una tabella di streaming.
Le viste materializzate e le tabelle di streaming create con le pipeline dichiarative di Lakeflow Spark non possono avere la proprietà trasferita direttamente. Modificare invece l'utente run-as della pipeline proprietaria dei set di dati. Con l'aggiornamento successivo, il proprietario verrà aggiornato all'utente run-as. Vedere Impostare l'utente run-as.
Esploratore di cataloghi
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Selezionare l'oggetto, ad esempio un catalogo, uno schema, una tabella, una vista, una posizione esterna o credenziali di archiviazione.
La modalità di spostamento all'oggetto dipende dall'oggetto. I cataloghi, gli Schemi e il contenuto degli Schemi (ad esempio tabelle e volumi) sono selezionabili nel riquadro Catalogo a sinistra. È possibile trovare altri oggetti, come posizioni esterne o condivisioni Delta Sharing, facendo clic sull'icona
sopra il riquadro del Catalogo e selezionando la categoria di oggetti dal menu.
Per la maggior parte degli oggetti, il proprietario viene visualizzato nella scheda Panoramica della pagina dei dettagli dell'oggetto. Per alcuni oggetti, ad esempio posizioni esterne, viene visualizzato nella parte superiore della pagina dei dettagli dell'oggetto.
Fare clic sull'icona
accanto al proprietario.Cerca e seleziona un gruppo, un utente o un'entità del servizio.
Fare clic su Salva.
SQL
Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL. Sostituisci i valori segnaposto:
-
<securable-type>: tipo di oggetto a protezione diretta, ad esempioCATALOGoTABLE.METASTOREnon è supportato come oggetto a protezione diretta in questo comando. -
<securable-name>: nome dell'oggetto proteggibile. Se si modifica uno schema o il contenuto di uno schema, è necessario usare lo spazio dei nomi completo a tre livelli (catalog.schema.object), a meno che non sia già stato specificato il catalogo padre e/o lo schema. -
<principal>è un utente, un'entità servizio (rappresentata dal relativo valore applicationId) o un gruppo. È necessario racchiudere gli utenti, i mandanti del servizio e i nomi dei gruppi che includono caratteri speciali tra apici inversi (` `). Si veda Principale
ALTER <securable-type> <securable-name> OWNER TO <principal>;
Ad esempio, per trasferire la proprietà della tabella orders al gruppo accounting:
ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;