Credenciales de almacenamiento

Se aplica a:check marked yes Databricks SQL check marked yes Databricks Runtime check marked yes Solo Unity Catalog

Unity Catalog y el metastore de Hive de Azure Databricks integrado usan ubicaciones predeterminadas para las tablas administradas. Unity Catalog presenta varios nuevos objetos protegibles para conceder privilegios a los datos en el almacenamiento de objetos en la nube.

Credencial de almacenamiento

Una credencial de almacenamiento es un objeto protegible que representa una identidad administrada de Azure o una entidad de servicio de Microsoft Entra ID.

Una vez creada una credencial de almacenamiento, se puede conceder acceso a las entidades de seguridad (usuarios y grupos).

Las credenciales de almacenamiento se usan principalmente para crear ubicaciones externas, que limitan el ámbito del acceso a una ruta de acceso de almacenamiento específica.

Los nombres de credenciales de almacenamiento no están completos y deben ser únicos dentro del repositorio metastore.

Representación gráfica de relaciones

En el diagrama siguiente se describe la relación entre:

  • credenciales de almacenamiento
  • ubicaciones externas
  • tablas externas
  • rutas de acceso de almacenamiento
  • entidades IAM
  • cuentas de servicio de Azure

External location ER diagram

Ejemplos

Con la CLI, cree una credencial de almacenamiento my_azure_storage_cred para una entidad de servicio de 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"}}'

El resto de los comandos se pueden ejecutar en 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';