Partager via


Démarrage rapide : utiliser Python pour interroger une base de données dans la base de données Azure SQL ou Azure SQL Managed Instance

S’applique :Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Dans ce guide de démarrage rapide, vous utilisez Python pour vous connecter à Azure SQL Database, Azure SQL Managed Instance ou une base de données Synapse SQL, puis utilisez des instructions T-SQL pour interroger les données.

documentation mssql-python | code source mssql-python | Package (PyPI)

Prérequis

Pour effectuer ce démarrage rapide, les éléments suivants sont requis :

Configuration

Suivez ces étapes pour configurer votre environnement de développement pour développer une application à l’aide du mssql-python pilote Python.

Note

Ce pilote utilise le protocole TDS (Tabular Data Stream), qui est activé par défaut dans SQL Server, sql Database dans Fabric et Azure SQL Database. Aucune configuration supplémentaire n’est requise.

Installer le package mssql-python

Obtenez le mssql-python package à partir de PyPI.

  1. Ouvrez une invite de commandes dans un répertoire vide.

  2. Installez le package mssql-python.

    pip install mssql-python
    

Installer le package python-dotenv

Obtenez le python-dotenv de PyPI.

  1. Dans le même répertoire, installez le python-dotenv package.

    pip install python-dotenv
    

Vérifier les packages installés

Vous pouvez utiliser l’outil en ligne de commande PyPI pour vérifier que vos packages prévus sont installés.

  1. Vérifiez la liste des packages installés avec pip list.

    pip list
    

Créer des fichiers

  1. Dans le répertoire actif, créez un fichier nommé .env.

  2. Dans le .env fichier, ajoutez une entrée pour votre chaîne de connexion nommée SQL_CONNECTION_STRING. Remplacez les espaces réservés <database-server-name> et <database-name> par vos valeurs.

    Le pilote mssql-python prend en charge l’authentification intégrée de Microsoft Entra. Utilisez le Authentication paramètre pour spécifier la méthode d’authentification.

    ActiveDirectoryDefault détecte automatiquement les informations d’identification de plusieurs sources sans nécessiter de connexion interactive. Il s’agit de l’option recommandée pour le développement local et fonctionne sur Windows, macOS et Linux.

    Pour obtenir l’expérience de développement local la plus fiable, connectez-vous avec Azure CLI en premier :

    az login
    

    Utilisez ensuite ce format de chaîne de connexion dans votre .env fichier :

    SQL_CONNECTION_STRING="Server=<database-server-name>.database.windows.net;Database=<database-name>;Authentication=ActiveDirectoryDefault;Encrypt=yes;TrustServerCertificate=no"
    

    ActiveDirectoryDefault évalue les informations d’identification dans l’ordre suivant :

    1. Variables d’environnement (pour les informations d’identification du principal de service)
    2. Identité managée (lors de l’exécution sur Azure)
    3. Azure CLI (à partir de az login)
    4. Visual Studio (Windows uniquement)
    5. Azure PowerShell (à partir de Connect-AzAccount)

    Conseil / Astuce

    Pour les applications de production, utilisez la méthode d’authentification spécifique pour votre scénario pour éviter la latence de découverte des informations d’identification :

    • Azure App Service/Functions : Utiliser ActiveDirectoryMSI (identité managée)
    • Connexion utilisateur interactive : Utiliser ActiveDirectoryInteractive
    • Principal de service : Utiliser ActiveDirectoryServicePrincipal

Conseil / Astuce

La chaîne de connexion utilisée ici dépend en grande partie du type de base de données SQL à laquelle vous vous connectez. Pour plus d’informations sur les chaînes de connexion et leur syntaxe, consultez mots clés et attributs de chaîne de connexion et DSN.

  1. Créez un nouveau fichier nommé sqltest.py dans un éditeur de texte.

  2. Ajoutez le code ci-dessous.

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
    load_dotenv()
    
    with connect(getenv("SQL_CONNECTION_STRING")) as conn:
        with conn.cursor() as cursor:
            cursor.execute("SELECT TOP 3 name, collation_name FROM sys.databases")
            rows = cursor.fetchall()
            for row in rows:
                print(row.name, row.collation_name)
    

Exécuter le code

  1. Depuis une invite de commandes, exécutez la commande suivante :

    python sqltest.py
    
  2. Vérifiez que les bases de données et leurs classements sont retournés, puis fermez la fenêtre Commande.

    Si vous recevez une erreur :

    • Vérifiez que le nom du serveur, le nom de la base de données, le nom d’utilisateur et le mot de passe que vous utilisez sont corrects.

    • Si vous exécutez le code à partir d’un environnement local, vérifiez que le pare-feu de la ressource Azure à laquelle vous essayez d’accéder est configuré pour autoriser l’accès à partir de l’adresse IP de votre environnement.