Gestire percorsi esterni e credenziali di archiviazione

Questo articolo presenta percorsi esterni e credenziali di archiviazione e spiega come crearli e usarli per gestire l'accesso alle tabelle esterne.

Che cosa sono i percorsi esterni e le credenziali di archiviazione?

Le posizioni esterne e le credenziali di archiviazione consentono a Unity Catalog di leggere e scrivere dati nel tenant cloud per conto degli utenti. Questi oggetti vengono usati per:

Una credenziale di archiviazione rappresenta un meccanismo di autenticazione e autorizzazione per l'accesso ai dati archiviati nel tenant cloud, usando un'identità gestita di Azure (fortemente consigliata) o un'entità servizio. Ogni credenziale di archiviazione è soggetta ai criteri di controllo di accesso del catalogo unity che controllano quali utenti e gruppi possono accedere alle credenziali. Se un utente non ha accesso a credenziali di archiviazione nel catalogo unity, la richiesta ha esito negativo e Il catalogo Unity non tenta di eseguire l'autenticazione nel tenant cloud per conto dell'utente.

Una posizione esterna è un oggetto che combina un percorso di archiviazione cloud con credenziali di archiviazione che autorizza l'accesso al percorso di archiviazione cloud. Ogni posizione di archiviazione è soggetta ai criteri di controllo di accesso del catalogo unity che controllano quali utenti e gruppi possono accedere alle credenziali. Se un utente non ha accesso a un percorso di archiviazione nel catalogo unity, la richiesta ha esito negativo e Il catalogo Unity non tenta di eseguire l'autenticazione al tenant cloud per conto dell'utente.

Databricks consiglia di usare posizioni esterne anziché usare direttamente le credenziali di archiviazione.

Requisiti

  • Per creare le credenziali di archiviazione, è necessario essere un amministratore dell'account Azure Databricks. L'amministratore dell'account che crea le credenziali di archiviazione può delegare la proprietà a un altro utente o gruppo per gestire le autorizzazioni.
  • Per creare percorsi esterni, è necessario essere un amministratore del metastore o un utente con il CREATE EXTERNAL LOCATION privilegio .
  • Il catalogo unity supporta solo Azure Data Lake Storage Gen2 per le posizioni esterne.

Gestire le credenziali di archiviazione

Le sezioni seguenti illustrano come creare e gestire le credenziali di archiviazione.

Creare credenziali di archiviazione

È possibile usare un'identità gestita di Azure o un'entità servizio come identità che autorizza l'accesso al contenitore di archiviazione. Le identità gestite sono fortemente consigliate. Hanno il vantaggio di consentire a Unity Catalog di accedere agli account di archiviazione protetti dalle regole di rete, che non è possibile usare le entità servizio e di rimuovere la necessità di gestire e ruotare i segreti.

Per creare credenziali di archiviazione usando un'identità gestita:

  1. Creare un connettore di accesso di Azure Databricks e assegnargli le autorizzazioni per il contenitore di archiviazione a cui si vuole accedere seguendo le istruzioni in Configurare un'identità gestita per Il catalogo unity.

    Un connettore di accesso di Azure Databricks è una risorsa di Azure di prima parte che consente di connettere le identità gestite a un account Azure Databricks.

    Prendere nota dell'ID risorsa del connettore di accesso.

  2. Accedere all'area di lavoro di Azure Databricks abilitata per Unity Catalog come amministratore dell'area di lavoro.

  3. Fare clic su Dati icona dati.

  4. Fare clic sul + menu in alto a destra e selezionare Aggiungi credenziali di archiviazione.

  5. Nella finestra di dialogo Crea una nuova credenziale di archiviazione selezionare Identità gestita (scelta consigliata).

  6. Immettere un nome per le credenziali e immettere l'ID risorsa del connettore di accesso nel formato:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource_group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. Fare clic su Save (Salva).

  8. Creare un percorso esterno che faccia riferimento a questa credenziale di archiviazione.

Per creare credenziali di archiviazione usando un'entità servizio:

  1. Nel portale di Azure creare un'entità servizio e concedergli l'accesso all'account di archiviazione.
    1. Creare un segreto client per l'entità servizio e annotarlo.
    2. Prendere nota dell'ID directory e dell'ID applicazione per l'entità servizio.
    3. Passare all'account di archiviazione e concedere all'entità servizio il ruolo Collaboratore BLOB di Azure .
  2. Accedere all'area di lavoro di Azure Databricks abilitata per Unity Catalog come amministratore dell'area di lavoro.
  3. Dal commutatore utente nella parte superiore della barra laterale selezionare SQL
  4. Fare clic su Dati icona dati.
  5. Fare clic sul + menu in alto a destra e selezionare Aggiungi credenziali di archiviazione.
  6. Nella finestra di dialogo Crea una nuova credenziale di archiviazione selezionare Entità servizio.
  7. Immettere un nome per le credenziali, insieme all'ID directory, all'ID applicazione e al segreto client dell'entità servizio a cui è stato concesso il ruolo Collaboratore BLOB di Azure nel contenitore di archiviazione a cui si vuole accedere.
  8. Fare clic su Save (Salva).
  9. Creare un percorso esterno che faccia riferimento a questa credenziale di archiviazione.

È anche possibile creare credenziali di archiviazione usando il provider Databricks Terraform e databricks_storage_credential.

Elencare le credenziali di archiviazione

Per visualizzare l'elenco di tutte le credenziali di archiviazione in un metastore, è possibile usare Esplora dati o un comando SQL.

Esplora dati

  1. Accedere a un'area di lavoro collegata al metastore.
  2. Fare clic su Dati icona dati.
  3. Nella parte inferiore della schermata fare clic su Credenziali di archiviazione.

Sql

Eseguire il comando seguente in un notebook o nell'editor SQL di Databricks.

SHOW STORAGE CREDENTIALS;

Python

Eseguire il comando seguente in un notebook.

display(spark.sql("SHOW STORAGE CREDENTIALS"))

R

Eseguire il comando seguente in un notebook.

library(SparkR)

display(sql("SHOW STORAGE CREDENTIALS"))

Scala

Eseguire il comando seguente in un notebook.

display(spark.sql("SHOW STORAGE CREDENTIALS"))

Visualizzare le credenziali di archiviazione

Per visualizzare le proprietà di una credenziale di archiviazione, è possibile usare Esplora dati o un comando SQL.

Esplora dati

  1. Accedere a un'area di lavoro collegata al metastore.
  2. Fare clic su Dati icona dati.
  3. Nella parte inferiore della schermata fare clic su Credenziali di archiviazione.
  4. Fare clic sul nome di una credenziale di archiviazione per visualizzarne le proprietà.

Sql

Eseguire il comando seguente in un notebook o nell'editor SQL di Databricks. Sostituire <credential_name> con il nome della credenziale.

DESCRIBE STORAGE CREDENTIAL <credential_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

display(spark.sql("DESCRIBE STORAGE CREDENTIAL <credential_name>"))

R

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

library(SparkR)

display(sql("DESCRIBE STORAGE CREDENTIAL <credential_name>"))

Scala

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

display(spark.sql("DESCRIBE STORAGE CREDENTIAL <credential_name>"))

Rinominare una credenziale di archiviazione

Per rinominare una credenziale di archiviazione, è possibile usare Esplora dati o un comando SQL.

Esplora dati

  1. Accedere a un'area di lavoro collegata al metastore.
  2. Fare clic su Dati icona dati.
  3. Nella parte inferiore della schermata fare clic su Credenziali di archiviazione.
  4. Fare clic sul nome di una credenziale di archiviazione per aprire la finestra di dialogo di modifica.
  5. Rinominare le credenziali di archiviazione e salvarle.

Sql

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

  • <credential_name>: nome della credenziale.
  • <new_credential_name>: nuovo nome per le credenziali.
ALTER STORAGE CREDENTIAL <credential_name> RENAME TO <new_credential_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <new_credential_name>: nuovo nome per le credenziali.
spark.sql("ALTER STORAGE CREDENTIAL <credential_name> RENAME TO <new_credential_name>")

R

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <new_credential_name>: nuovo nome per le credenziali.
library(SparkR)

sql("ALTER STORAGE CREDENTIAL <credential_name> RENAME TO <new_credential_name>")

Scala

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <new_credential_name>: nuovo nome per le credenziali.
spark.sql("ALTER STORAGE CREDENTIAL <credential_name> RENAME TO <new_credential_name>")

Gestire le autorizzazioni per una credenziale di archiviazione

È possibile concedere le autorizzazioni direttamente alle credenziali di archiviazione, ma Databricks consiglia di farvi riferimento in una posizione esterna e concedere le autorizzazioni a tale credenziale. Una posizione esterna combina una credenziale di archiviazione con un percorso specifico e autorizza l'accesso solo a tale percorso e al relativo contenuto.

È possibile gestire le autorizzazioni per una credenziale di archiviazione usando Esplora dati, comandi SQL o Terraform. È possibile concedere e revocare le autorizzazioni seguenti per una credenziale di archiviazione:

  • CREATE TABLE
  • READ FILES
  • WRITE FILES

Negli esempi seguenti sostituire i valori segnaposto:

  • <principal>: indirizzo di posta elettronica dell'utente a livello di account o nome del gruppo a livello di account a cui concedere l'autorizzazione.
  • <storage_credential_name>: nome di una credenziale di archiviazione.

Per visualizzare le concessioni in una credenziale di archiviazione, usare un comando simile al seguente. Facoltativamente, è possibile filtrare i risultati per visualizzare solo le concessioni per l'entità specificata.

SQL

SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage_credential_name>;

Python

display(spark.sql("SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage_credential_name>"))

R

library(SparkR)
display(sql("SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage_credential_name>"))

Scala

display(spark.sql("SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage_credential_name>"))

Per concedere l'autorizzazione per creare una tabella esterna usando direttamente una credenziale di archiviazione:

SQL

GRANT CREATE EXTERNAL TABLE ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>;

Python

spark.sql("GRANT CREATE EXTERNAL TABLE ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

R

library(SparkR)
sql("GRANT CREATE EXTERNAL TABLE ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

Scala

spark.sql("GRANT CREATE EXTERNAL TABLE ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

Per concedere l'autorizzazione per selezionare da una tabella esterna usando direttamente una credenziale di archiviazione:

SQL

GRANT READ FILES ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>;

Python

spark.sql("GRANT READ FILES ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

R

library(SparkR)
sql("GRANT READ FILES ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

Scala

spark.sql("GRANT READ FILES ON STORAGE CREDENTIAL <storage_credential_name> TO <principal>")

Nota

Se un nome di gruppo contiene uno spazio, usare i punti di spunta indietro intorno a esso (non apostrofi).

Modificare il proprietario di una credenziale di archiviazione

L'autore delle credenziali di archiviazione è il proprietario iniziale. Per modificare il proprietario in un utente o un gruppo a livello di account diverso, eseguire le operazioni seguenti:

Sql

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

  • <credential_name>: nome della credenziale.
  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
ALTER STORAGE CREDENTIAL <credential_name> OWNER TO <principal>;

Python

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
spark.sql("ALTER STORAGE CREDENTIAL <credential_name> OWNER TO <principal>")

R

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
library(SparkR)

sql("ALTER STORAGE CREDENTIAL <credential_name> OWNER TO <principal>")

Scala

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <credential_name>: nome della credenziale.
  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
spark.sql("ALTER STORAGE CREDENTIAL <credential_name> OWNER TO <principal>")

Eliminare una credenziale di archiviazione

Per eliminare una credenziale di archiviazione, è possibile usare Esplora dati o un comando SQL.

Esplora dati

  1. Accedere a un'area di lavoro collegata al metastore.
  2. Fare clic su Dati icona dati.
  3. Nella parte inferiore della schermata fare clic su Credenziali di archiviazione.
  4. Fare clic sul nome di una credenziale di archiviazione per aprire la finestra di dialogo di modifica.
  5. Fare clic sul pulsante Elimina.

Sql

Eseguire il comando seguente in un notebook o nell'editor SQL di Databricks. Sostituire <credential_name> con il nome della credenziale. Le parti del comando tra parentesi quadre sono facoltative. Per impostazione predefinita, se la credenziale viene usata da un percorso esterno, non viene eliminata. Sostituire <credential_name> con il nome della credenziale.

  • IF EXISTS non restituisce un errore se la credenziale non esiste.
DROP STORAGE CREDENTIAL [IF EXISTS] <credential_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale. Le parti del comando tra parentesi quadre sono facoltative. Per impostazione predefinita, se la credenziale viene usata da un percorso esterno, non viene eliminata. Sostituire <credential_name> con il nome della credenziale.

  • IF EXISTS non restituisce un errore se la credenziale non esiste.

  • <credential_name>: nome della credenziale.

    • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
    spark.sql("DROP STORAGE CREDENTIAL [IF EXISTS] <credential_name>")
    

R

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale. Le parti del comando tra parentesi quadre sono facoltative. Per impostazione predefinita, se la credenziale viene usata da un percorso esterno, non viene eliminata. Sostituire <credential_name> con il nome della credenziale.

  • IF EXISTS non restituisce un errore se la credenziale non esiste.
 library(SparkR)

 sql("DROP STORAGE CREDENTIAL [IF EXISTS] <credential_name>")

Scala

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale. Le parti del comando tra parentesi quadre sono facoltative. Per impostazione predefinita, se la credenziale viene usata da un percorso esterno, non viene eliminata. Sostituire <credential_name> con il nome della credenziale.

  • IF EXISTS non restituisce un errore se la credenziale non esiste.
 spark.sql("DROP STORAGE CREDENTIAL [IF EXISTS] <credential_name>")

Gestire le posizioni esterne

Le sezioni seguenti illustrano come creare e gestire posizioni esterne.

Creare un percorso esterno

È possibile creare una posizione esterna usando Esplora dati, un comando SQL o Terraform.

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

  • <location_name>: nome per la posizione esterna.

  • <bucket_path>: percorso nel tenant cloud a cui questa posizione esterna concede l'accesso.

  • <storage_credential_name>: nome delle credenziali di archiviazione che contiene dettagli su un'entità servizio autorizzata a leggere e scrivere dal percorso del contenitore di archiviazione.

Nota

  • Ogni percorso di archiviazione cloud può essere associato a una sola posizione esterna. Se si tenta di creare una seconda posizione esterna che fa riferimento allo stesso percorso, il comando ha esito negativo.
  • Le posizioni esterne supportano solo l'archiviazione Azure Data Lake Storage Gen2.

SQL

CREATE EXTERNAL LOCATION <location_name>
URL 'abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>'
WITH ([STORAGE] CREDENTIAL <storage_credential_name>);

Python

spark.sql("CREATE EXTERNAL LOCATION <location_name> "
  "URL 'abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>' "
  "WITH ([STORAGE] CREDENTIAL <storage_credential_name>)")

R

library(SparkR)
sql(paste("CREATE EXTERNAL LOCATION <location_name> ",
  "URL 'abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>' ",
  "WITH ([STORAGE] CREDENTIAL <storage_credential_name>)",
  sep = ""))

Scala

spark.sql("CREATE EXTERNAL LOCATION <location_name> " +
  "URL 'abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>' " +
  "WITH ([STORAGE] CREDENTIAL <storage_credential_name>)")

Descrivere una posizione esterna

Per visualizzare le proprietà di una posizione esterna, è possibile usare Esplora dati o un comando SQL.

Esplora dati

  1. Accedere a un'area di lavoro collegata al metastore.
  2. Fare clic su Dati icona dati.
  3. Nella parte inferiore della schermata fare clic su Percorsi esterni.
  4. Fare clic sul nome di una posizione esterna per visualizzarne le proprietà.

Sql

Eseguire il comando seguente in un notebook o nell'editor SQL di Databricks. Sostituire <credential_name> con il nome della credenziale.

DESCRIBE EXTERNAL LOCATION <location_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

display(spark.sql("DESCRIBE EXTERNAL LOCATION <location_name>"))

R

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

library(SparkR)

display(sql("DESCRIBE EXTERNAL LOCATION <location_name>"))

Scala

Eseguire il comando seguente in un notebook. Sostituire <credential_name> con il nome della credenziale.

display(spark.sql("DESCRIBE EXTERNAL LOCATION <location_name>"))

Modificare una posizione esterna

Il proprietario di una posizione esterna può rinominare, modificare l'URI e modificare le credenziali di archiviazione della posizione esterna.

Per rinominare un percorso esterno, eseguire le operazioni seguenti:

Sql

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

  • <location_name>: nome della posizione.
  • <new_location_name>: nuovo nome per la posizione.
ALTER EXTERNAL LOCATION <location_name> RENAME TO <new_location_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione.
  • <new_location_name>: nuovo nome per la posizione.
spark.sql("ALTER EXTERNAL LOCATION <location_name> RENAME TO <new_location_name>")

R

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione.
  • <new_location_name>: nuovo nome per la posizione.
library(SparkR)

sql("ALTER EXTERNAL LOCATION <location_name> RENAME TO <new_location_name>")

Scala

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione.
  • <new_location_name>: nuovo nome per la posizione.
spark.sql("ALTER EXTERNAL LOCATION <location_name> RENAME TO <new_location_name>")

Per modificare l'URI a cui punta un percorso esterno nel tenant del cloud, eseguire le operazioni seguenti:

Sql

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

  • <location_name>: nome della posizione esterna.
  • <url>: il nuovo URL di archiviazione il percorso deve autorizzare l'accesso al tenant del cloud.
ALTER EXTERNAL LOCATION location_name SET URL `<url>` [FORCE];

Python

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <url>: il nuovo URL di archiviazione il percorso deve autorizzare l'accesso al tenant del cloud.
spark.sql("ALTER EXTERNAL LOCATION location_name SET URL `<url>` [FORCE]")

R

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <url>: il nuovo URL di archiviazione il percorso deve autorizzare l'accesso al tenant del cloud.
library(SparkR)

sql("ALTER EXTERNAL LOCATION location_name SET URL `<url>` [FORCE]")

Scala

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <url>: il nuovo URL di archiviazione il percorso deve autorizzare l'accesso al tenant del cloud.
spark.sql("ALTER EXTERNAL LOCATION location_name SET URL `<url>` [FORCE]")

L'opzione FORCE modifica l'URL anche se le tabelle esterne dipendono dalla posizione esterna.

Per modificare le credenziali di archiviazione usate da un percorso esterno, eseguire le operazioni seguenti:

Sql

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

  • <location_name>: nome della posizione esterna.
  • <credential_name>: nome delle credenziali di archiviazione che concede l'accesso all'URL del percorso nel tenant cloud.
ALTER EXTERNAL LOCATION <location_name> SET STORAGE CREDENTIAL <credential_name>;

Python

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <credential_name>: nome delle credenziali di archiviazione che concede l'accesso all'URL del percorso nel tenant cloud.
spark.sql("ALTER EXTERNAL LOCATION <location_name> SET STORAGE CREDENTIAL <credential_name>")

R

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <credential_name>: nome delle credenziali di archiviazione che concede l'accesso all'URL del percorso nel tenant cloud.
library(SparkR)

sql("ALTER EXTERNAL LOCATION <location_name> SET STORAGE CREDENTIAL <credential_name>")

Scala

Eseguire il comando seguente in un notebook. Sostituire i valori segnaposto:

  • <location_name>: nome della posizione esterna.
  • <credential_name>: nome delle credenziali di archiviazione che concede l'accesso all'URL della posizione nel tenant cloud.
spark.sql("ALTER EXTERNAL LOCATION <location_name> SET STORAGE CREDENTIAL <credential_name>")

Gestire le autorizzazioni per un percorso esterno

È possibile concedere e revocare le autorizzazioni seguenti in un percorso esterno usando Esplora dati, un comando SQL o Terraform:

  • CREATE TABLE
  • READ FILES
  • WRITE FILES

Negli esempi seguenti sostituire i valori segnaposto:

  • <principal>: indirizzo di posta elettronica dell'utente a livello di account o nome del gruppo a livello di account a cui concedere l'autorizzazione.

  • <location_name>: nome del percorso esterno che autorizza la lettura e la scrittura nel percorso del contenitore di archiviazione nel tenant cloud.

  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.

Per visualizzare le concessioni in un percorso esterno, usare un comando simile al seguente. Facoltativamente, è possibile filtrare i risultati in modo da visualizzare solo le concessioni per l'entità specificata.

SQL

SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location_name>;

Python

display(spark.sql("SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location_name>"))

R

library(SparkR)

display(sql("SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location_name>"))

Scala

display(spark.sql("SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location_name>"))

Per concedere l'autorizzazione per usare un percorso esterno per creare una tabella:

SQL

GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location_name> TO <principal>;

Python

spark.sql("GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location_name> TO <principal>")

R

library(SparkR)

sql("GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location_name> TO <principal>")

Scala

spark.sql("GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location_name> TO <principal>")

Per concedere l'autorizzazione per leggere i file da un percorso esterno:

SQL

GRANT READ FILES ON EXTERNAL LOCATION <location_name> TO <principal>;

Python

spark.sql("GRANT READ FILES ON EXTERNAL LOCATION <location_name> TO <principal>")

R

library(SparkR)

sql("GRANT READ FILES ON EXTERNAL LOCATION <location_name> TO <principal>")

Scala

spark.sql("GRANT READ FILES ON EXTERNAL LOCATION <location_name> TO <principal>")

Nota

Se un nome di gruppo contiene uno spazio, usare i segni di spunta indietro intorno a esso (non apostrofi).

Modificare il proprietario di una posizione esterna

L'autore di una posizione esterna è il proprietario iniziale. Per modificare il proprietario in un altro utente o gruppo a livello di account, eseguire il comando seguente in un notebook o nell'editor SQL di Databricks oppure usare Esplora dati. Sostituire i valori segnaposto:

  • <location_name>: nome della credenziale.
  • <principal>: indirizzo di posta elettronica di un utente a livello di account o nome di un gruppo a livello di account.
ALTER EXTERNAL LOCATION <location_name> OWNER TO <principal>

Eliminare un percorso esterno

Per eliminare un percorso esterno, eseguire le operazioni seguenti:

Sql

Eseguire il comando seguente in un notebook o nell'editor SQL di Databricks. Gli elementi tra parentesi quadre sono facoltativi. Sostituire <location_name> con il nome della posizione esterna.

DROP EXTERNAL LOCATION [IF EXISTS] <location_name>;

Python

Eseguire il comando seguente in un notebook. Gli elementi tra parentesi quadre sono facoltativi. Sostituire <location_name> con il nome della posizione esterna.

spark.sql("DROP EXTERNAL LOCATION [IF EXISTS] <location_name>")

R

Eseguire il comando seguente in un notebook. Gli elementi tra parentesi quadre sono facoltativi. Sostituire <location_name> con il nome della posizione esterna.

library(SparkR)

sql("DROP EXTERNAL LOCATION [IF EXISTS] <location_name>")

Scala

Eseguire il comando seguente in un notebook. Gli elementi tra parentesi quadre sono facoltativi. Sostituire <location_name> con il nome della posizione esterna.

spark.sql("DROP EXTERNAL LOCATION [IF EXISTS] <location_name>")

Passaggi successivi