Partager via


Se connecter au stockage Azure avec une identité managée à partir de PolyBase

S’applique à : SQL Server 2025 (17.x) et versions ultérieures

À compter de SQL Server 2025 (17.x), vous pouvez utiliser l’identité managée pour accéder aux ressources Azure suivantes :

  • Stockage Blob Azure
  • Azure Data Lake

Prerequisites

  • SQL Server 2025 (17.x)
  • SQL Server activé par Azure Arc
  • Activer l’option de configuration du allow server scoped db credentials serveur
  • Donnez à l’identité managée l’accès à la ressource Stockage Blob Azure.

Créer des informations d’identification délimitées à la base de données

Ajoutez des informations d’identification délimitées à la base de données pour l’identité managée.

  1. Autorisez les informations d’identification de base de données limitées au serveur. Exécutez la requête Transact-SQL suivante :

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Créez des informations d’identification délimitées à la base de données. Cet exemple utilise le nom managed_id:

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

Créer une source de données externe

Créez la source de données externe avec les paramètres suivants.

  • Préfixe d’emplacement du connecteur

    • abs
  • Chemin d’accès à l’emplacement

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ ou
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Emplacements pris en charge par produit/service

    • SQL Server 2025 (17.x) activé par Azure Arc
    • SQL Server 2022 (16.x) : espace de noms hiérarchique pris en charge
  • Authentification

    • Signature d’accès partagé (SAP) ou
    • Identité managée

Interroger un fichier Parquet dans le Stockage Blob Azure

SQL Server 2025 (17.x) prend en charge l’identité managée via Azure Arc. Pour obtenir des instructions, consultez l’identité managée pour SQL Server activée par Azure Arc.

L’exemple suivant interroge un fichier Parquet dans stockage Blob Azure :

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

Erreurs et solutions

La table externe n’est pas accessible (Erreur 16562)

Vous pouvez rencontrer l’erreur 16562 lors de la tentative d’accès au Stockage Blob Azure ou à Azure Data Lake si vous ne disposez pas des prérequis :

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.

Vérifiez les éléments suivants :

  • L’instance SQL Server est correctement configurée pour Azure Arc. Pour plus d’informations, consultez l’identité managée pour SQL Server activée par Azure Arc.

  • Les entrées de Registre requises existent.

  • Vérifiez que l’option de configuration du allow server scoped db credentials serveur est activée.

Impossible d’ouvrir le fichier (Erreur 13822)

Vous pouvez rencontrer l’erreur 13822 lorsque vous accédez au Stockage Blob Azure ou à Azure Data Lake si l’identité managée ne dispose pas d’autorisations sur le compte de stockage, ou que l’accès réseau au stockage est bloqué.

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.

Vérifiez les éléments suivants :

  • L’identité managée dispose-t-elle des autorisations pour le conteneur de stockage ?
  • L’identité managée peut-elle accéder au conteneur de stockage en dehors de SQL Server ?
  • Le fichier est-il verrouillé exclusivement ?