Credenziali di archiviazione

Si applica solo a:check marked yes Catalogo Unity di Databricks SQL check marked yes Databricks Runtime check marked yes

Il catalogo unity e il metastore Hive di Azure Databricks incorporato usano percorsi predefiniti per le tabelle gestite. Unity Catalog introduce diversi nuovi oggetti a protezione diretta per concedere privilegi ai dati nell'archiviazione di oggetti cloud.

Credenziali di archiviazione

Una credenziale di archiviazione è un oggetto a protezione diretta che rappresenta un'identità gestita di Azure o un'entità servizio Microsoft Entra ID.

Dopo aver creato l'accesso a una credenziale di archiviazione, è possibile concedere alle entità (utenti e gruppi).

Archiviazione credenziali vengono usate principalmente per creare percorsi esterni, che hanno come ambito l'accesso a un percorso di archiviazione specifico.

Archiviazione nomi di credenziali non sono qualificati e devono essere univoci all'interno del metastore.

Rappresentazione grafica delle relazioni

Il diagramma seguente descrive la relazione tra:

  • credenziali di archiviazione
  • posizioni esterne
  • tabelle esterne
  • percorsi di archiviazione
  • Entità IAM
  • Account del servizio di Azure

External location ER diagram

Esempi

L'uso dell'interfaccia della riga di comando crea credenziali my_azure_storage_cred di archiviazione per un'entità servizio Microsoft Entra ID.

databricks storage-credentials create --json '{"name": "my_azure_storage_cred", "azure_service_principal": {"directory_id": "12345678-9abc-def0-1234-56789abcdef0", "application_id": "23456789-9abc-def0-1234-56789abcdef0", "client_secret": "Cli3nt5ecr3t"}}'

Il resto dei comandi può essere eseguito all'interno di SQL.

-- Grant access to the storage credential
> GRANT READ FILES ON STORAGE CREDENTIAL my_azure_storage_cred TO ceo;

-- ceo can directly read from any storage path using myazure_storage_cred
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/finance/forecast/somefile` WITH (CREDENTIAL my_azure_storage_cred);
  100
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/hr/employees` WITH (CREDENTIAL my_azure_storage_cred);
  2017

-- Create an external location on specific path to which `my_azure_storage_cred` has access
> CREATE EXTERNAL LOCATION finance_loc URL 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance'
    WITH (CREDENTIAL my_azure_storage_cred)
    COMMENT 'finance';