Freigeben über


Speicheranmeldeinformationen

Gilt für: Häkchen Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime durch Häkchen mit „Ja“ markiert Nur Unity Catalog

Unity Catalog und der integrierte Azure Databricks Hive-Metastore verwenden Standardspeicherorte für verwaltete Tabellen. Unity Catalog führt mehrere neue sicherungsfähige Objekte ein, um Daten im Cloudobjektspeicher Berechtigungen zu gewähren.

Speicheranmeldeinformationen

Eine Speicheranmeldeinformation ist ein sicherungsfähiges Objekt, das eine von Azure verwaltete Identität oder einen Microsoft Entra ID-Dienstprinzipal darstellt.

Sobald Speicheranmeldeinformationen erstellt wurden, kann Prinzipalen (Benutzern und Gruppen) Zugriff darauf gewährt werden.

Speicheranmeldeinformationen werden in erster Linie verwendet, um externe Speicherorte zu erstellen, die den Zugriff auf einen bestimmten Speicherpfad beschränken.

Namen von Speicheranmeldeinformationen werden ohne Qualifizierung angegeben, müssen aber im Metastore eindeutig sein.

Grafische Darstellung von Beziehungen

Das folgende Diagramm veranschaulicht die Beziehung zwischen den folgenden Elementen:

  • Speicheranmeldeinformationen
  • Externe Speicherorte
  • Externe Tabellen
  • Speicherpfade
  • IAM-Entitäten
  • Azure-Dienstkonten

ER-Diagramm des externen Speicherorts

Beispiele

Erstellen Sie mithilfe der CLI eine Speicheranmeldeinformation namens my_azure_storage_cred für einen Microsoft Entra ID-Dienstprinzipal.

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"}}'

Die restlichen Befehle können in SQL ausgeführt werden.

-- 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';