Delen via


Referentie

Alleen van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime vinkje als ja aan Unity Catalog

Unity Catalog en de ingebouwde Azure Databricks Hive-metastore gebruiken standaardlocaties voor beheerde tabellen. Unity Catalog introduceert verschillende nieuwe beveiligbare objecten om bevoegdheden te verlenen aan externe cloudservices en -gegevens in de opslag van cloudobjecten.

Referentie

Een referentie is een beveiligbaar object dat een door Azure beheerde identiteit of Microsoft Entra ID-service-principal vertegenwoordigt.

Nadat een referentie is gemaakt, kan toegang worden verleend aan principals (gebruikers en groepen).

Opslagreferenties worden voornamelijk gebruikt voor het maken van externe locaties, waarmee toegang tot een specifiek opslagpad wordt bereikt.

Referentienamen zijn niet gekwalificeerd en moeten uniek zijn binnen de metastore.

Grafische weergave van relaties

In het volgende diagram wordt de relatie tussen:

  • opslagreferenties
  • externe locaties
  • externe tabellen
  • opslagpaden
  • IAM-entiteiten
  • Azure-serviceaccounts

ER-diagram voor externe locatie

Voorbeelden

Met CLI maakt u een opslagreferentie my_azure_storage_cred voor een Service-principal van 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"}}'

De rest van de opdrachten kan worden uitgevoerd in 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';