Megosztás a következőn keresztül:


Rövid útmutató: Adatbázis lekérdezése a Python használatával az Azure SQL Database-ben vagy a felügyelt Azure SQL-példányban

A következőkre vonatkozik:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Ebben a rövid útmutatóban a Python használatával csatlakozhat az Azure SQL Database-hez, az Azure SQL Managed Instance-hez vagy a Synapse SQL-adatbázishoz, és T-SQL-utasítások használatával kérdezheti le az adatokat.

az mssql-python dokumentációja | mssql-python forráskód | Csomag (PyPI)

Előfeltételek

A gyors kezdéshez ezekre lesz szüksége:

Előkészítés

Ezeket a lépéseket követve konfigurálhatja a fejlesztési környezetet egy alkalmazás Python-illesztőprogram használatával mssql-python történő fejlesztéséhez.

Megjegyzés:

Ez az illesztőprogram a Tabular Data Stream (TDS) protokollt használja, amely alapértelmezés szerint engedélyezve van az SQL Serverben, az SQL Database-ben a Fabricben és az Azure SQL Database-ben. Nincs szükség további konfigurációra.

Az mssql-python csomag telepítése

Szerezze be a mssql-python csomagot a PyPI-ről.

  1. Nyissa meg a parancssort egy üres könyvtárban.

  2. Telepítse az mssql-python csomagot.

    pip install mssql-python
    

Python-dotenv-csomag telepítése

Szerezze be a python-dotenv-t a PyPI-ról.

  1. Ugyanabban a könyvtárban telepítse a python-dotenv csomagot.

    pip install python-dotenv
    

Telepített csomagok ellenőrzése

A PyPI parancssori eszközével ellenőrizheti, hogy a tervezett csomagok telepítve vannak-e.

  1. Ellenőrizze a telepített csomagok listáját a következővel pip list: .

    pip list
    

Új fájlok létrehozása

  1. Az aktuális könyvtárban hozzon létre egy új fájlt..env

  2. A .env fájlban adjon hozzá egy bejegyzést a kapcsolati karakterlánchoz, a következő névvel: SQL_CONNECTION_STRING. Cserélje le a <database-server-name> és <database-name> helyőrzőket a saját értékeire.

    Az mssql-python illesztőprogram beépített támogatást nyújt a Microsoft Entra-hitelesítéshez. A paraméter használatával Authentication adja meg a hitelesítési módszert.

    ActiveDirectoryDefault automatikusan felderíti a hitelesítő adatokat több forrásból anélkül, hogy interaktív bejelentkezésre van szükség. Ez a helyi fejlesztés ajánlott módja , és Windows, macOS és Linux rendszeren is működik.

    A legmegbízhatóbb helyi fejlesztési élmény érdekében először jelentkezzen be az Azure CLI-vel:

    az login
    

    Ezután használja ezt a kapcsolati sztringformátumot a .env fájlban:

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

    ActiveDirectoryDefault a hitelesítő adatokat a következő sorrendben értékeli ki:

    1. Környezeti változók (a szolgáltatásnévhez tartozó hitelesítő adatokhoz)
    2. Kezelt identitás (Azure-ban futtatva)
    3. Azure CLI (forrás az login)
    4. Visual Studio (csak Windows rendszeren)
    5. Azure PowerShell (forrás Connect-AzAccount)

    Jótanács

    Éles alkalmazások esetén használja az adott hitelesítési módszert a forgatókönyvhöz a hitelesítő adatok felderítésének késésének elkerülése érdekében:

    • Azure App Service/Functions: Használja ActiveDirectoryMSI (felügyelt identitás)
    • Interaktív felhasználói bejelentkezés: Használat ActiveDirectoryInteractive
    • Szolgáltatásnév: Használat ActiveDirectoryServicePrincipal

Jótanács

Az itt használt kapcsolati sztring nagyban függ attól, hogy milyen TÍPUSÚ SQL-adatbázishoz csatlakozik. A kapcsolati sztringekről és azok szintaxisáról további információt a DSN és a kapcsolati sztring kulcsszavak és attribútumok című témakörben talál.

  1. Szövegszerkesztőben hozzon létre egy sqltest.py nevű új fájlt.

  2. Adja hozzá a következő kódot.

    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)
    

A kód futtatása

  1. Egy parancssorban futtassa a következő parancsot:

    python sqltest.py
    
  2. Ellenőrizze, hogy az adatbázisok és azok rendezései vissza lettek-e adva, majd zárja be a parancsablakot.

    Ha hibaüzenetet kap:

    • Ellenőrizze, hogy a kiszolgáló neve, az adatbázis neve, a felhasználónév és a jelszó helyes-e.

    • Ha helyi környezetből futtatja a kódot, ellenőrizze, hogy a elérni kívánt Azure-erőforrás tűzfala úgy van-e konfigurálva, hogy engedélyezze a hozzáférést a környezet IP-címéről.