Hızlı Başlangıç: Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği'da bir veritabanını sorgulamak için Python kullanma

Şunlar için geçerlidir: Azure SQL Veritabanı Azure SQL Yönetilen Örneği Azure Synapse Analytics

Bu hızlı başlangıçta python kullanarak Azure SQL Veritabanı, Azure SQL Yönetilen Örneği veya Synapse SQL veritabanına bağlanacak ve verileri sorgulamak için T-SQL deyimlerini kullanacaksınız.

mssql-python belgeleri | mssql-python kaynak kodu | Paket (PyPI)

Önkoşullar

Bu hızlı başlangıcı tamamlamak için şunlar gerekir:

Kurulum

Python sürücüsünü kullanarak mssql-python bir uygulama geliştirmek üzere geliştirme ortamınızı yapılandırmak için bu adımları izleyin.

Uyarı

Bu sürücü SQL Server'da, Doku'daki SQL veritabanında ve Azure SQL Veritabanı'nda varsayılan olarak etkinleştirilen Tablosal Veri Akışı (TDS) protokollerini kullanır. Ek yapılandırma gerekmez.

mssql-python paketini yükleme

mssql-python Paketi PyPI'dan alın.

  1. Boş bir dizinde bir komut istemi açın.

  2. mssql-python paketini yükleyin.

    pip install mssql-python
    

python-dotenv paketini yükleme

PyPI'den python-dotenv alın.

  1. Aynı dizinde paketi yükleyin python-dotenv .

    pip install python-dotenv
    

Yüklü paketleri denetleme

Hedeflenen paketlerinizin yüklendiğini doğrulamak için PyPI komut satırı aracını kullanabilirsiniz.

  1. ile pip listyüklü paketlerin listesini denetleyin.

    pip list
    

Yeni dosyalar oluşturma

  1. Geçerli dizinde adlı .envyeni bir dosya oluşturun.

  2. dosyasının içine .env bağlantı dizeniz için adlı SQL_CONNECTION_STRINGbir girdi ekleyin. <database-server-name> ve <database-name> yer tutucularını kendi değerlerinizle değiştirin.

    mssql-python sürücüsü, Microsoft Entra kimlik doğrulaması için yerleşik desteğe sahiptir. Authentication Kimlik doğrulama yöntemini belirtmek için parametresini kullanın.

    ActiveDirectoryDefault etkileşimli oturum açma gerektirmeden birden çok kaynaktan kimlik bilgilerini otomatik olarak bulur. Bu, yerel geliştirme için önerilen seçenektir ve Windows, macOS ve Linux üzerinde çalışır.

    En güvenilir yerel geliştirme deneyimi için önce Azure CLI ile oturum açın:

    az login
    

    Ardından dosyanızda .env şu bağlantı dizesi biçimini kullanın:

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

    ActiveDirectoryDefault kimlik bilgilerini aşağıdaki sırayla değerlendirir:

    1. Ortam değişkenleri (hizmet temsilcisi kimlik bilgileri için)
    2. Yönetilen kimlik (Azure'da çalışırken)
    3. Azure CLI (kaynak az login)
    4. Visual Studio (yalnızca Windows)
    5. Azure PowerShell (kimden Connect-AzAccount)

    İpucu

    Üretim uygulamaları için, kimlik bilgisi bulma gecikme süresini önlemek için senaryonuza özgü kimlik doğrulama yöntemini kullanın:

    • Azure App Service/İşlevler: ActiveDirectoryMSI (yönetilen kimlik) kullanın
    • Etkileşimli kullanıcı oturumu açma: Kullan ActiveDirectoryInteractive
    • Hizmet sorumlusu: Kullan ActiveDirectoryServicePrincipal

İpucu

Burada kullanılan bağlantı dizesi büyük ölçüde bağlandığınız SQL veritabanının türüne bağlıdır. Bağlantı dizeleri ve söz dizimi hakkında daha fazla bilgi için bkz. DSN ve Bağlantı Dizesi Anahtar Sözcükleri ve Öznitelikleri.

  1. Bir metin düzenleyicisinde sqltest.py adlı yeni bir dosya oluşturun.

  2. Aşağıdaki kodu ekleyin.

    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)
    

Kodu çalıştırma

  1. Komut isteminde aşağıdaki komutu çalıştırın:

    python sqltest.py
    
  2. Veritabanlarının ve harmanlamalarının döndürüldüğünü doğrulayın ve ardından komut penceresini kapatın.

    Hata alırsanız:

    • Kullandığınız sunucu adının, veritabanı adının, kullanıcı adının ve parolanın doğru olduğunu doğrulayın.

    • Kodu yerel bir ortamdan çalıştırıyorsanız, erişmeye çalıştığınız Azure kaynağının güvenlik duvarının ortamınızın IP adresinden erişime izin verecek şekilde yapılandırıldığını doğrulayın.