Condividi tramite


Gestire la proprietà dell'oggetto Unity Catalog

Ogni oggetto proteggibile in Unity Catalog ha un proprietario. Il proprietario può essere qualsiasi entità: un utente, un'entità servizio o un gruppo di account. L'entità che crea un oggetto diventa il proprietario iniziale. Il proprietario di un oggetto dispone di tutti i privilegi per l'oggetto, ad esempio SELECT e MODIFY in una tabella, oltre all'autorizzazione per concedere privilegi ad altre entità. Il proprietario di un oggetto ha la possibilità di eliminare l'oggetto.

Privilegi di proprietario

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

Esiste un'eccezione alla regola che i proprietari dispongono di tutti i privilegi per un oggetto: per evitare l'esfiltrazione accidentale dei dati, i proprietari dello schema non dispongono del privilegio EXTERNAL USE SCHEMA per impostazione predefinita. Vedi Abilitare l'accesso ai dati esterni a Unity Catalog.

Metastore e gestione del catalogo

Gli amministratori metastore sono i proprietari del metastore. Il ruolo di amministratore del metastore è facoltativo. Gli amministratori metastore possono riassegnare la proprietà del metastore trasferendo il ruolo di amministratore del metastore, si veda Assegnare un amministratore di metastore.

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 e possono riassegnare la proprietà del catalogo dell'area di lavoro. In queste aree di lavoro non è assegnato alcun amministratore del metastore di default, ma gli amministratori degli account possono concedere il ruolo di amministratore del metastore, se necessario. Si veda Amministratori metastore.

Per altre informazioni sui privilegi di amministratore in Unity Catalog, vedere Privilegi di amministratore in Unity Catalog.

Proprietà versus il privilegio di MANAGE

MANAGE (anteprima pubblica) è un privilegio simile alla proprietà dell'oggetto. Concede a un utente la possibilità di modificare, eliminare e gestire i privilegi per l'oggetto. Tuttavia, agli utenti con privilegi di MANAGE per un oggetto non vengono concessi automaticamente tutti i privilegi per tale oggetto. Come fanno con altri privilegi, gli utenti richiedono USE CATALOG nel catalogo padre dell'oggetto e USE SCHEMA nello schema padre dell'oggetto. Ad esempio, per concedere le autorizzazioni per una tabella, gli utenti devono avere i privilegi MANAGE per tale tabella e i privilegi USE CATALOG sul catalogo padre, insieme ai privilegi USE SCHEMA sullo schema padre.

Il proprietario di un oggetto può essere solo un'entità singola, incluso un gruppo, mentre MANAGE può essere concesso a più entità.

Per evitare l'elevazione accidentale dei privilegi, ALL PRIVILEGES non include il privilegio MANAGE

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

  1. Nell'area di lavoro di Azure Databricks, fare clic sull'icona CatalogoCatalogo.

  2. 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 Delta Sharing, cliccando sull'icona a forma di ingranaggio sopra il riquadro 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. Sostituire i valori segnaposto:

  • <securable-type>: tipo di entità a protezione diretta, ad esempio CATALOG o TABLE.
  • <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 a protezione diretta corrente.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

Trasferisci proprietà

È possibile usare esplora cataloghi o istruzioni SQL per visualizzare 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 condivisione differenziale rappresentano un'eccezione: le entità con privilegi USE SHARE e SET SHARE PERMISSION possono anche trasferire la proprietà della condivisione.

Nota

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.

Esploratore di Cataloghi

  1. Nell'area di lavoro di Azure Databricks, fare clic sull'icona CatalogoCatalogo.

  2. 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 Delta Sharing, cliccando sull'icona a forma di ingranaggio sopra il riquadro 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.

  3. Fare clic sull'icona Icona Modifica di modifica accanto al proprietario.

  4. Cerca e seleziona un gruppo, un utente o un'entità del servizio.

  5. Fare clic su Salva.

SQL

Eseguire il seguente comando SQL in un notebook o nell'editor di query SQL. Sostituire i valori segnaposto:

  • <securable-type>: tipo di oggetto a protezione diretta, ad esempio CATALOG o TABLE. METASTORE non è supportato come oggetto a protezione diretta in questo comando.
  • <securable-name>: nome dell'entità a protezione diretta. 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 Entità
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`;