Informations d’identification de stockage

S’applique à : check marked yes Databricks SQL check marked yes Databricks Runtime check marked yes Unity Catalog uniquement

Unity Catalog et le metastore intégré Azure Databricks Hive utilisent des emplacements par défaut pour les tables managées. Unity Catalog introduit plusieurs nouveaux objets sécurisables pour accorder des privilèges aux données dans le stockage d’objets cloud.

Informations d’identification de stockage

Les informations d’identification de stockage constituent un objet sécurisable représentant une identité managée Azure ou un principal de service Microsoft Entra ID.

Une fois que des informations d’identification de stockage ont été créées, l’accès à celui-ci peut être accordé aux principaux (utilisateurs et groupes).

Les informations d’identification de stockage sont principalement utilisées pour créer des emplacements externes, qui étendent l’accès à un chemin de stockage spécifique.

Les noms d’informations d’identification de stockage ne sont pas qualifiés et doivent être uniques dans le magasin de données.

Représentation graphique des relations

Le diagramme suivant décrit la relation entre les éléments suivants :

  • informations d’identification de stockage
  • emplacements externes
  • tables externes
  • chemins de stockage
  • entités IAM
  • comptes de service Azure

External location ER diagram

Exemples

À l’aide de l’interface CLI, créez des informations d’identification de stockage my_azure_storage_cred pour un principal de service 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"}}'

Les autres commandes peuvent être exécutées dans 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';