Megosztás:


Csatlakozás az Azure Storage-hoz felügyelt identitással a PolyBase-ből

A következőkre vonatkozik: SQL Server 2025 (17.x) és újabb verziók

Az SQL Server 2025 -től kezdve (17.x) felügyelt identitással érheti el a következő Azure-erőforrásokat:

  • Azure Blob Storage
  • Azure Data Lake

Előfeltételek

  • SQL Server 2025 (17.x)
  • Az Azure Arc által engedélyezett SQL Server
  • A kiszolgáló konfigurációs beállításának allow server scoped db credentials engedélyezése
  • Adjon hozzáférést a felügyelt identitásnak az Azure Blob Storage-erőforráshoz.

Adatbázis hatókörű hitelesítő adatainak létrehozása

Adjon hozzá egy adatbázis-hatókörű hitelesítő adatot a felügyelt identitáshoz.

  1. A kiszolgáló hatókörébe tartozó adatbázis hitelesítő adatainak engedélyezése. Futtassa a következő Transact-SQL lekérdezést:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Adatbázis-hatókörű hitelesítő adatok létrehozása. Ez a példa a következő nevet managed_idhasználja:

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

Külső adatforrás létrehozása

Hozza létre a külső adatforrást az alábbi beállításokkal.

  • Csatlakozó hely előtagja

    • abs
  • Hely elérési útja

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ vagy
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Támogatott helyek termék/szolgáltatás szerint

    • Az Azure Arc által engedélyezett SQL Server 2025 (17.x)
    • SQL Server 2022 (16.x): A hierarchikus névtér támogatott
  • Authentication

    • Közös hozzáférésű jogosultságkód (SAS) vagy
    • Felügyelt identitás

Parquet-fájl lekérdezése az Azure Blob Storage-ban

Az SQL Server 2025 (17.x) támogatja a felügyelt identitást az Azure Arcon keresztül. Útmutatásért tekintse meg az Azure Arc által engedélyezett SQL Server felügyelt identitását.

Az alábbi példa egy Parquet-fájlt kérdez le az Azure Blob Storage-ban:

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

Hibák és megoldások

A külső tábla nem érhető el (16562-s hiba)

Ha hiányoznak az előfeltételek, 16562-s hiba léphet fel az Azure Blob Storage vagy az Azure Data Lake elérésekor:

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.

Ellenőrizze a következő elemeket:

  • Az SQL Server-példány megfelelően van konfigurálva az Azure Arc számára. További információért lásd Felügyelt identitás, amelyet az Azure Arc engedélyez SQL Serverhez.

  • A szükséges beállításjegyzék-bejegyzések léteznek.

  • Ellenőrizze, hogy engedélyezve van-e a allow server scoped db credentials kiszolgálókonfigurációs beállítás.

A fájl nem nyitható meg (13822-s hiba)

Az Azure Blob Storage vagy az Azure Data Lake elérésekor 13822-s hiba léphet fel, ha a felügyelt identitás nem rendelkezik engedélyekkel a tárfiókhoz, vagy a tárolóhoz való hálózati hozzáférés le van tiltva.

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.

Ellenőrizze a következő elemeket:

  • Rendelkezik a felügyelt identitás engedélyekkel a tárolóhoz?
  • A felügyelt identitás hozzáfér a tárolóhoz az SQL Serveren kívül?
  • A fájl kizárólag zárolva van?