Delen via


Quickstart: Python gebruiken om een query uit te voeren op een database in Azure SQL Database of Azure SQL Managed Instance

van toepassing op:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics-

In deze quickstart gebruikt u Python om verbinding te maken met Azure SQL Database, Azure SQL Managed Instance of Synapse SQL-database en gebruikt u T-SQL-instructies om query's uit te voeren op gegevens.

documentatie | mssql-python-broncode | Pakket (PyPI)

Vereiste voorwaarden

U hebt het volgende nodig om deze quickstart te voltooien:

Installeren

Volg deze stappen om uw ontwikkelomgeving te configureren voor het ontwikkelen van een toepassing met behulp van het mssql-python Python-stuurprogramma.

Opmerking

Dit stuurprogramma maakt gebruik van het TDS-protocol (Tabular Data Stream), dat standaard is ingeschakeld in SQL Server, SQL Database in Fabric en Azure SQL Database. Er is geen extra configuratie vereist.

Het mssql-python-pakket installeren

Haal het mssql-python pakket op uit PyPI.

  1. Open een opdrachtprompt in een lege map.

  2. Installeer het mssql-python-pakket.

    pip install mssql-python
    

Python-dotenv-pakket installeren

Haal de python-dotenv uit PyPI.

  1. Installeer het python-dotenv pakket in dezelfde map.

    pip install python-dotenv
    

Geïnstalleerde pakketten controleren

U kunt het opdrachtregelprogramma PyPI gebruiken om te controleren of de beoogde pakketten zijn geïnstalleerd.

  1. Controleer de lijst met geïnstalleerde pakketten met pip list.

    pip list
    

Nieuwe bestanden maken

  1. Maak in de huidige map een nieuw bestand met de naam .env.

  2. Voeg in het .env bestand een vermelding toe voor de verbindingsreeks met de naam SQL_CONNECTION_STRING. Vervang de tijdelijke aanduidingen <database-server-name> en <database-name> door uw eigen waarden.

    Het mssql-python-stuurprogramma biedt ingebouwde ondersteuning voor Microsoft Entra-verificatie. Gebruik de Authentication parameter om de verificatiemethode op te geven.

    ActiveDirectoryDefault ontdekt automatisch inloggegevens uit meerdere bronnen zonder interactieve aanmelding. Dit is de aanbevolen optie voor lokale ontwikkeling en werkt op Windows, macOS en Linux.

    Meld u eerst aan met Azure CLI voor de meest betrouwbare ervaring voor lokale ontwikkeling:

    az login
    

    Gebruik vervolgens deze verbindingsreeksindeling in uw .env bestand:

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

    ActiveDirectoryDefault evalueert referenties in de volgende volgorde:

    1. Omgevingsvariabelen (voor inloggegevens van de service-principal)
    2. Beheerde identiteit (wanneer deze wordt uitgevoerd in Azure)
    3. Azure CLI (van az login)
    4. Visual Studio (alleen Windows)
    5. Azure PowerShell (van Connect-AzAccount)

    Aanbeveling

    Gebruik voor productietoepassingen de specifieke verificatiemethode voor uw scenario om latentie van referentiedetectie te voorkomen:

    • Azure App Service/Functions: Gebruiken ActiveDirectoryMSI (beheerde identiteit)
    • Interactieve gebruikersaanmelding: gebruiken ActiveDirectoryInteractive
    • Service-principal: Gebruik ActiveDirectoryServicePrincipal

Aanbeveling

De hier gebruikte verbindingsreeks is grotendeels afhankelijk van het type SQL-database waarmee u verbinding maakt. Zie DSN- en verbindingsreekstrefwoorden en -kenmerken voor meer informatie over verbindingsreeksen en hun syntaxis.

  1. Maak in een teksteditor een nieuw bestand met de naam sqltest.py.

  2. Voeg de volgende code toe.

    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)
    

De code uitvoeren

  1. Voer de volgende opdracht uit op een opdrachtprompt:

    python sqltest.py
    
  2. Controleer of de databases en de bijbehorende sorteringen worden geretourneerd en sluit vervolgens het opdrachtvenster.

    Als u een foutmelding krijgt:

    • Controleer of de servernaam, databasenaam, gebruikersnaam en wachtwoord die u gebruikt, juist zijn.

    • Als u de code uitvoert vanuit een lokale omgeving, controleert u of de firewall van de Azure-resource die u probeert te openen, is geconfigureerd om toegang vanaf het IP-adres van uw omgeving toe te staan.