Freigeben über


Herstellen einer Verbindung zu Azure Storage über verwaltete Identität mit PolyBase.

Gilt für: SQL Server 2025 (17.x) und höhere Versionen

Ab SQL Server 2025 (17.x) können Sie verwaltete Identität verwenden, um auf die folgenden Azure-Ressourcen zuzugreifen:

  • Azure Blob Storage (Speicherdienst von Azure für unstrukturierte Daten)
  • Azure Data Lake

Voraussetzungen

  • SQL Server 2025 (17.x)
  • SQL Server, aktiviert von Azure Arc
  • Aktivieren der allow server scoped db credentials Serverkonfigurationsoption
  • Gewähren Sie der verwalteten Identität Zugriff auf die Azure Blob Storage-Ressource.

Erstellen von Anmeldeinformationen mit Datenbankbereich

Fügen Sie eine Datenbank mit Anmeldeinformationen für verwaltete Identität hinzu.

  1. Serverbereichsbezogene Datenbankanmeldeinformationen zulassen. Führen Sie die folgende Transact-SQL Abfrage aus:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Erstellen Sie eine Datenbank mit Anmeldeinformationen mit Bereich. In diesem Beispiel wird der Name managed_idverwendet:

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

Erstellen einer externen Datenquelle

Erstellen Sie die externe Datenquelle mit den folgenden Einstellungen.

  • Präfix "Verbinderposition"

    • abs
  • Standortpfad

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ oder
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Unterstützte Standorte nach Produkt/Service

    • SQL Server 2025 (17.x), aktiviert von Azure Arc
    • SQL Server 2022 (16.x): Hierarchischer Namespace unterstützt
  • Authentifizierung

    • Signatur für freigegebenen Zugriff (Shared Access Signature, SAS) oder
    • Verwaltete Identität

Eine Parquet-Datei in Azure Blob Storage abfragen

SQL Server 2025 (17.x) unterstützt verwaltete Identität über Azure Arc. Anweisungen finden Sie unter Verwaltete Identität für SQL Server, der von Azure Arc aktiviert ist.

Im folgenden Beispiel wird eine Parquet-Datei in Azure Blob Storage abgefragt.

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

Fehler und Lösungen

Auf externe Tabelle kann nicht zugegriffen werden (Fehler 16562)

Beim Versuch, auf Azure Blob Storage oder Azure Data Lake zuzugreifen, tritt möglicherweise Fehler 16562 auf, wenn Die Voraussetzungen fehlen:

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.

Überprüfen Sie die folgenden Elemente:

  • Die SQL Server-Instanz ist ordnungsgemäß für Azure Arc konfiguriert. Weitere Informationen finden Sie unter Verwaltete Identität für SQL Server, die von Azure Arc aktiviert sind.

  • Die erforderlichen Registrierungseinträge sind vorhanden.

  • Stellen Sie sicher, dass die allow server scoped db credentials Serverkonfigurationsoption aktiviert ist.

Datei kann nicht geöffnet werden (Fehler 13822)

Möglicherweise tritt fehler 13822 auf, wenn Sie auf Azure Blob Storage oder Azure Data Lake zugreifen, wenn die verwaltete Identität über keine Berechtigungen für das Speicherkonto verfügt oder der Netzwerkzugriff auf Speicher blockiert wird.

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.

Überprüfen Sie die folgenden Elemente:

  • Verfügt die verwaltete Identität über Berechtigungen für den Speichercontainer?
  • Kann die verwaltete Identität auf den Speichercontainer außerhalb von SQL Server zugreifen?
  • Ist die Datei exklusiv gesperrt?