Sdílet prostřednictvím


Rychlý start: Použití Pythonu k dotazování databáze ve službě Azure SQL Database nebo azure SQL Managed Instance

Platí pro:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

V tomto rychlém přehledu se pomocí Pythonu připojíte ke službě Azure SQL Database, Azure SQL Managed Instance nebo databázi Synapse SQL a pro dotazování dat použijete příkazy T-SQL.

Dokumentace mssql-python | mssql-python | Balíček (PyPI)

Požadavky

K dokončení tohoto rychlého startu je potřeba:

Instalace

Podle těchto kroků nakonfigurujte vývojové prostředí pro vývoj aplikace pomocí ovladače Pythonu mssql-python .

Poznámka:

Tento ovladač používá protokol TDS (Tabular Data Stream), který je ve výchozím nastavení povolený v SQL Serveru, databázi SQL v Prostředcích infrastruktury a Azure SQL Database. Nevyžaduje se žádná další konfigurace.

Instalace balíčku mssql-python

Z PyPI stáhněte balíčekmssql-python.

  1. Otevřete příkazový řádek v prázdném adresáři.

  2. Nainstalujte balíček mssql-python.

    pip install mssql-python
    

Instalace balíčku python-dotenv

Získejte balíček z python-dotenv PyPI.

  1. Ve stejném adresáři nainstalujte python-dotenv balíček.

    pip install python-dotenv
    

Kontrola nainstalovaných balíčků

Pomocí nástroje příkazového řádku PyPI můžete ověřit, že jsou nainstalované požadované balíčky.

  1. Zkontrolujte seznam nainstalovaných balíčků s příponou pip list.

    pip list
    

Vytvoření nových souborů

  1. V aktuálním adresáři vytvořte nový soubor s názvem .env.

  2. .env V souboru přidejte položku pro připojovací řetězec s názvem SQL_CONNECTION_STRING. Nahraďte zástupné symboly <database-server-name> a <database-name> vlastními hodnotami.

    Ovladač mssql-python má integrovanou podporu ověřování Microsoft Entra. Pomocí parametru Authentication zadejte metodu ověřování.

    ActiveDirectoryDefault automaticky zjistí přihlašovací údaje z více zdrojů bez nutnosti interaktivního přihlášení. Tato možnost se doporučuje pro místní vývoj a funguje ve Windows, macOS a Linuxu.

    V případě nejspolehlivějšího místního vývojového prostředí se nejprve přihlaste pomocí Azure CLI:

    az login
    

    Pak v .env souboru použijte tento formát připojovacího řetězce:

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

    ActiveDirectoryDefault vyhodnotí přihlašovací údaje v následujícím pořadí:

    1. Proměnné prostředí (pro přihlašovací údaje služebního principálu)
    2. Spravovaná identita (při spuštění v Azure)
    3. Azure CLI (z az login)
    4. Visual Studio (jenom Windows)
    5. Azure PowerShell (z Connect-AzAccount)

    Návod

    V produkčních aplikacích použijte pro svůj scénář konkrétní metodu ověřování, abyste se vyhnuli latenci zjišťování přihlašovacích údajů:

    • Azure App Service/Functions: Použití ActiveDirectoryMSI (spravovaná identita)
    • Interaktivní přihlášení uživatele: Použití ActiveDirectoryInteractive
    • Principál služby: Použití ActiveDirectoryServicePrincipal

Návod

Připojovací řetězec použitý zde do značné míry závisí na typu databáze SQL, ke které se připojujete. Další informace o připojovacích řetězcích a jejich syntaxi najdete v tématu DSN a klíčová slova a atributy připojovacího řetězce.

  1. V textovém editoru vytvořte nový soubor s názvem sqltest.py.

  2. Přidejte následující kód.

    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)
    

Spuštění kódu

  1. Na příkazovém řádku spusťte následující příkaz:

    python sqltest.py
    
  2. Ověřte, že se vrátí databáze a jejich kolace, a pak zavřete příkazové okno.

    Pokud se zobrazí chyba:

    • Ověřte správnost názvu serveru, názvu databáze, uživatelského jména a hesla, které používáte.

    • Pokud kód spouštíte z místního prostředí, ověřte, že je brána firewall prostředku Azure, ke kterému se pokoušíte získat přístup, nakonfigurovaná tak, aby povolovala přístup z IP adresy vašeho prostředí.