Sdílet prostřednictvím


Připojení ke službě Azure Storage pomocí spravované identity z PolyBase

Platí pro: SQL Server 2025 (17.x) a novější verze

Počínaje SQL Serverem 2025 (17.x) můžete použít spravovanou identitu pro přístup k následujícím prostředkům Azure:

  • Azure Blob Storage
  • Azure Data Lake

Požadavky

  • SQL Server 2025 (17.x)
  • SQL Server povolený službou Azure Arc
  • allow server scoped db credentials Povolení možnosti konfigurace serveru
  • Udělte spravované identitě přístup k prostředku služby Azure Blob Storage.

Vytvoření přihlašovacích údajů s vymezeným oborem databáze

Přidejte přihlašovací údaje s vymezeným oborem databáze pro spravovanou identitu.

  1. Povolit přihlašovací údaje databáze s vymezeným oborem serveru Spusťte následující dotaz Transact-SQL:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Vytvořte přihlašovací údaje s vymezeným oborem databáze. V tomto příkladu se používá název managed_id:

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

Vytvoření externího zdroje dat

Vytvořte externí zdroj dat s následujícím nastavením.

  • Předpona umístění konektoru

    • abs
  • Cesta k umístění

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/, nebo
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Podporovaná umístění podle produktu nebo služby

    • SQL Server 2025 (17.x) povolený službou Azure Arc
    • SQL Server 2022 (16.x): Hierarchický obor názvů je podporován
  • Autentizace

    • Sdílený přístupový podpis (SAS) nebo
    • Spravovaná identita

Dotazovat soubor Parquet ve službě Azure Blob Storage

SQL Server 2025 (17.x) podporuje spravovanou identitu prostřednictvím služby Azure Arc. Pokyny najdete v tématu Spravovaná identita PRO SQL Server, který povoluje Azure Arc.

Následující příklad dotazuje soubor Parquet ve službě 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
);

Chyby a řešení

Externí tabulka není přístupná (chyba 16562)

Pokud vám chybí požadavky, může dojít k chybě 16562 při pokusu o přístup ke službě Azure Blob Storage nebo Azure Data Lake:

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.

Zkontrolujte následující položky:

Soubor nejde otevřít (chyba 13822)

Při přístupu ke službě Azure Blob Storage nebo Azure Data Lake může dojít k chybě 13822, pokud spravovaná identita nemá oprávnění k účtu úložiště nebo je zablokovaný síťový přístup k úložišti.

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.

Zkontrolujte následující položky:

  • Má spravovaná identita oprávnění ke kontejneru úložiště?
  • Může spravovaná identita přistupovat k kontejneru úložiště mimo SQL Server?
  • Je soubor uzamčen výhradně?