Udostępnij za pośrednictwem


Szybki start: wykonywanie zapytań względem bazy danych w usłudze Azure SQL Database lub Azure SQL Managed Instance przy użyciu języka Python

Dotyczy:Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

W tym przewodniku szybkiego startu użyjesz języka Python, aby nawiązać połączenie z Azure SQL Database, Azure SQL Managed Instance lub bazą danych Synapse SQL i używać instrukcji T-SQL do wykonywania zapytań o dane.

Dokumentacja mssql-python | kod źródłowy mssql-python | Pakiet (PyPI)

Wymagania wstępne

Aby ukończyć ten przewodnik Szybki Start, musisz spełnić następujące warunki:

Konfigurowanie

Wykonaj następujące kroki, aby skonfigurować środowisko deweloperskie do tworzenia aplikacji przy użyciu mssql-python sterownika języka Python.

Uwaga / Notatka

Ten sterownik używa protokołu strumienia danych tabelarycznych (TDS), który jest domyślnie włączony w SQL Server, bazie danych SQL w Fabric oraz Azure SQL Database. Nie jest wymagana żadna dodatkowa konfiguracja.

Instalowanie pakietu mssql-python

mssql-python Pobierz pakiet z PyPI.

  1. Otwórz wiersz polecenia w pustym katalogu.

  2. Zainstaluj pakiet mssql-python.

    pip install mssql-python
    

Instalowanie pakietu python-dotenv

Pobierz element python-dotenv z PyPI.

  1. W tym samym katalogu zainstaluj pakiet python-dotenv.

    pip install python-dotenv
    

Sprawdzanie zainstalowanych pakietów

Możesz użyć narzędzia wiersza polecenia PyPI, aby sprawdzić, czy są zainstalowane zamierzone pakiety.

  1. Sprawdź listę zainstalowanych pakietów za pomocą polecenia pip list.

    pip list
    

Tworzenie nowych plików

  1. W bieżącym katalogu utwórz nowy plik o nazwie .env.

  2. W pliku .env dodaj wpis dla łańcucha połączenia o nazwie SQL_CONNECTION_STRING. Zastąp symbole zastępcze <database-server-name> i <database-name> własnymi wartościami.

    Sterownik mssql-python ma wbudowaną obsługę uwierzytelniania Entra firmy Microsoft. Użyj parametru , Authentication aby określić metodę uwierzytelniania.

    ActiveDirectoryDefault automatycznie odnajduje poświadczenia z wielu źródeł bez konieczności logowania interakcyjnego. Jest to zalecana opcja programowania lokalnego i działa w systemach Windows, macOS i Linux.

    Aby uzyskać najbardziej niezawodne środowisko programowania lokalnego, najpierw zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure:

    az login
    

    Następnie użyj tego formatu parametrów połączenia w .env pliku:

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

    ActiveDirectoryDefault ocenia poświadczenia w następującej kolejności:

    1. Zmienne środowiskowe (dla poświadczeń jednostki usługi)
    2. Tożsamość zarządzana (w przypadku uruchamiania na platformie Azure)
    3. Interfejs wiersza polecenia platformy Azure (z az login)
    4. Visual Studio (tylko system Windows)
    5. Azure PowerShell (z Connect-AzAccount)

    Wskazówka

    W przypadku aplikacji produkcyjnych użyj określonej metody uwierzytelniania dla danego scenariusza, aby uniknąć opóźnienia odnajdywania poświadczeń:

    • Azure App Service/Functions: użyj ActiveDirectoryMSI (tożsamość zarządzana)
    • Logowanie użytkownika interakcyjnego: użyj polecenia ActiveDirectoryInteractive
    • Usługa główna: użyj ActiveDirectoryServicePrincipal

Wskazówka

Parametry połączenia używane w tym miejscu w dużej mierze zależą od typu bazy danych SQL, z którą nawiązujesz połączenie. Aby uzyskać więcej informacji na temat parametrów połączenia i ich składni, zobacz DSN i Parametry połączenia Słowa kluczowe i atrybuty.

  1. W edytorze tekstów utwórz nowy plik o nazwie sqltest.py.

  2. Dodaj następujący kod.

    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)
    

Uruchamianie kodu

  1. W wierszu polecenia uruchom następujące polecenie:

    python sqltest.py
    
  2. Sprawdź, czy bazy danych i ich sortowania są zwracane, a następnie zamknij okno polecenia.

    Jeśli wystąpi błąd:

    • Sprawdź, czy używana nazwa serwera, nazwa bazy danych, nazwa użytkownika i hasło są poprawne.

    • Jeśli używasz kodu ze środowiska lokalnego, sprawdź, czy zapora zasobu platformy Azure, do którego próbujesz uzyskać dostęp, jest skonfigurowana tak, aby zezwolić na dostęp z adresu IP środowiska.