Delen via


Verbinding maken met Azure Storage met een beheerde identiteit vanuit PolyBase

Van toepassing op: SQL Server 2025 (17.x) en latere versies

Vanaf SQL Server 2025 (17.x) kunt u beheerde identiteit gebruiken voor toegang tot de volgende Azure-resources:

  • Azure Blob Storage (opslagdienst van Azure)
  • Azure Data Lake

Vereiste voorwaarden

Voor SQL Server op Azure-VM's

Nadat u de vereiste stappen hebt voltooid, voegt u twee nieuwe registervermeldingen toe. U hebt deze registervermeldingen alleen nodig voor SQL Server op Azure Virtual Machines. Voor SQL Server-exemplaren die zijn ingeschakeld door Azure Arc, worden deze vermeldingen automatisch gemaakt.

Werk in het register de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication subsleutel bij.

Waarschuwing

Het onjuist bewerken van het register kan uw systeem ernstig beschadigen. Voordat u wijzigingen aanbrengt in het register, raden we u aan een back-up te maken van waardegegevens op de computer.

Maak de volgende vermeldingen:

Entry Waarde
AADAzureStorageEndPoint storage.azure.com
AADDataLakeEndPoint datalake.azure.net

Databasereferenties maken

Voeg een databasereferentie toe voor beheerde identiteit.

  1. Sta databasereferenties met serverbereik toe. Voer de volgende Transact-SQL-query uit:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Maak een databasereferentie binnen het bereik. In dit voorbeeld wordt de naam managed_idgebruikt:

    CREATE DATABASE SCOPED CREDENTIAL [managed_id]
    WITH IDENTITY = 'Managed Identity';
    

Externe gegevensbron maken

Maak de externe gegevensbron met de volgende instellingen.

  • Voorvoegsel voor connectorlocatie

    • abs
  • Locatiepad

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/of,
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Ondersteunde locaties voor product of service

    • SQL Server 2025 (17.x) ingeschakeld door Azure Arc
    • SQL Server 2022 (16.x): HiĆ«rarchische naamruimte ondersteund
  • Authentication

    • Shared Access Signature (SAS), ofwel
    • Beheerde identiteit

Query's uitvoeren op een Parquet-bestand in Azure Blob Storage

SQL Server 2025 (17.x) ondersteunt beheerde identiteiten via Azure Arc. Zie Beheerde identiteit voor SQL Server ingeschakeld door Azure Arc voor instructies.

In het volgende voorbeeld wordt een Query uitgevoerd op een Parquet-bestand in Azure Blob Storage:

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';

CREATE EXTERNAL DATA SOURCE [my_external_data_source]
WITH (
    LOCATION = 'abs://<container>@<storage_account_name>.blob.core.windows.net/',
    CREDENTIAL = managed_id
);

Fouten en oplossingen

Externe tabel is niet toegankelijk (fout 16562)

U kunt fout 16562 tegenkomen bij het openen van Azure Blob Storage of Azure Data Lake als u niet aan de vereisten voldoet.

Msg 16562, Level 16, State 1, Line 79
External table <name> is not accessible because location does not exist or it is used by another process.

Controleer de volgende items:

Bestand kan niet worden geopend (fout 13822)

Er kan fout 13822 optreden wanneer u toegang krijgt tot Azure Blob Storage of Azure Data Lake, als de beheerde identiteit geen machtigingen voor het opslagaccount heeft of als de netwerktoegang tot opslag wordt geblokkeerd:

Msg 13822, Level 16, State 1, Line 9
File <file> cannot be opened because it does not exist or it is used by another process.

Controleer de volgende items:

  • Heeft de beheerde identiteit machtigingen voor de opslagcontainer?
  • Heeft de beheerde identiteit toegang tot de opslagcontainer buiten SQL Server?
  • Is het bestand exclusief vergrendeld?