Credenciales de almacenamiento
Se aplica a: Databricks SQL Databricks Runtime 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.
-
Objeto de Unity Catalog que se usa para abstraer credenciales a largo plazo de los proveedores de almacenamiento en la nube.
-
Objeto de Unity Catalog que se usa para asociar un URI de almacenamiento de objetos en la nube con una credencial de almacenamiento.
-
Tabla de Unity Catalog creada en una ubicación externa administrada por Unity Catalog.
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
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';