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 un table, oltre all'autorizzazione per grant privilegi ad altri principali. 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 grant privilegi sull'oggetto stesso e su tutti i relativi oggetti figlio. Ciò significa che i proprietari di un schema non dispongono automaticamente di tutti i privilegi per il tables nel schema, ma possono grant stessi privilegi per il tables nel schema.

Nota

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

Metastore e proprietà di catalog

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 creata un'area di lavoro catalog per l'area di lavoro nel metastore. Gli amministratori dell'area di lavoro sono i proprietari predefiniti e possono riassegnare la proprietà dell'area di lavoro catalog. In queste aree di lavoro non è assegnato alcun amministratore del metastore per impostazione predefinita, ma gli amministratori dell'account possono grant 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 sul catalog padre dell'oggetto e USE SCHEMA sul schemapadre dell'oggetto . Ad esempio, per ottenere i privilegi grant su un table, gli utenti devono avere il privilegio MANAGE su tale table e i privilegi USE CATALOG sul suo catalogpadre, insieme ai privilegi USE SCHEMA sul padre di quest'ultimo schema.

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 Catalog explorer 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.

Catalog Esploratore

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

  2. Select l'oggetto, ad esempio una catalog, schema, table, visualizzazione, volume, posizione esterna o credenziali di archiviazione.

    La modalità di spostamento all'oggetto dipende dall'oggetto. Catalogs, gli schemi e il contenuto degli schemi ( ad esempio tables e volumes) sono selezionabili nel riquadro di Catalog sinistro. È possibile trovare altri oggetti, ad esempio posizioni esterne o condivisione differenziale shares, facendo clic sull'icona a forma di ingranaggio icona a forma di ingranaggio sopra il riquadro Catalog 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 il segnaposto values:

  • <securable-type>: tipo di entità a protezione diretta, ad esempio CATALOG o TABLE.
  • <catalog>: il catalog padre se si visualizza un schema o il contenuto di un schema.
  • <schema>: Il schema padre se si visualizza il contenuto di un schema, ad esempio un table o una vista.
  • <securable-name>: nome dell'oggetto a protezione diretta corrente.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

Trasferisci proprietà

È possibile usare Catalog explorer 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 catalog per un schema, il schema per un table) 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.

Catalog Explorer

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

  2. Select l'oggetto, come ad esempio una catalog, schema, table, una vista, una posizione esterna o delle credenziali di archiviazione.

    La modalità di spostamento all'oggetto dipende dall'oggetto. Catalogs, gli schemi e il contenuto degli schemi ( ad esempio tables e volumes) sono selezionabili nel riquadro di Catalog sinistro. È possibile trovare altri oggetti, come posizioni esterne o Delta Sharing shares, facendo clic sull'icona a forma di ingranaggio sopra il riquadro Catalog 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. Cercare e select un gruppo, un utente o un'entità servizio.

  5. Fare clic su Salva.

SQL

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

  • <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 stai modificando un schema o il contenuto di un schema, è necessario usare lo spazio dei nomi completo a tre livelli (catalog.schema.object), a meno che tu non abbia già specificato il catalog e/o 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à del orderstable al gruppo accounting:

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