Bagikan melalui


Mulai cepat: Menggunakan Python untuk mengkueri database di Azure SQL Database atau Azure SQL Managed Instance

Berlaku untuk:Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics

Dalam mulai cepat ini, Anda menggunakan Python untuk menyambungkan ke Azure SQL Database, Azure SQL Managed Instance, atau synapse SQL database dan menggunakan pernyataan T-SQL untuk meminta data.

dokumentasi mssql-pythonkode sumber mssql-pythonPaket (PyPI)

Prasyarat

Untuk menyelesaikan mulai cepat ini, Anda memerlukan:

Persiapan

Ikuti langkah-langkah ini untuk mengonfigurasi lingkungan pengembangan Anda untuk mengembangkan aplikasi menggunakan mssql-python driver Python.

Nota

Driver ini menggunakan protokol Aliran Data Tabular (TDS), yang diaktifkan secara default di SQL Server, database SQL di Fabric dan Azure SQL Database. Tidak diperlukan konfigurasi tambahan.

Menginstal paket mssql-python

mssql-python Dapatkan paket dari PyPI.

  1. Buka command prompt di direktori kosong.

  2. Pasang paket mssql-python tersebut.

    pip install mssql-python
    

Menginstal paket python-dotenv

Dapatkan python-dotenv dari PyPI.

  1. Di direktori yang sama, instal python-dotenv paket.

    pip install python-dotenv
    

Periksa paket yang terinstal

Anda dapat menggunakan alat baris perintah PyPI untuk memverifikasi bahwa paket yang Anda maksudkan diinstal.

  1. Periksa daftar paket yang diinstal dengan pip list.

    pip list
    

Membuat file baru

  1. Di direktori saat ini, buat file baru bernama .env.

  2. Di dalam file .env, tambahkan entri untuk string koneksi Anda yang bernama SQL_CONNECTION_STRING. Ganti placeholder <database-server-name> dan <database-name> dengan nilai Anda sendiri.

    Driver mssql-python memiliki dukungan bawaan untuk autentikasi Microsoft Entra. Authentication Gunakan parameter untuk menentukan metode autentikasi.

    ActiveDirectoryDefault secara otomatis menemukan kredensial dari beberapa sumber tanpa memerlukan login interaktif. Ini adalah opsi yang direkomendasikan untuk pengembangan lokal dan berfungsi di Windows, macOS, dan Linux.

    Untuk pengalaman pengembangan lokal yang paling andal, masuk dengan Azure CLI terlebih dahulu:

    az login
    

    Kemudian gunakan format string koneksi ini dalam file Anda .env :

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

    ActiveDirectoryDefault mengevaluasi kredensial dalam urutan berikut:

    1. Variabel lingkungan (untuk kredensial perwakilan layanan)
    2. Identitas terkelola (saat berjalan di Azure)
    3. Azure CLI (dari az login)
    4. Visual Studio (khusus Windows)
    5. Azure PowerShell (dari Connect-AzAccount)

    Tip

    Untuk aplikasi produksi, gunakan metode autentikasi tertentu untuk skenario Anda untuk menghindari latensi penemuan kredensial:

    • Azure App Service/Functions: Gunakan ActiveDirectoryMSI (identitas terkelola)
    • Login pengguna interaktif: Gunakan ActiveDirectoryInteractive
    • Prinsipal layanan: Gunakan ActiveDirectoryServicePrincipal

Tip

String koneksi yang digunakan di sini sebagian besar tergantung pada jenis database SQL yang Anda sambungkan. Untuk informasi selengkapnya tentang string koneksi dan sintaksnya, lihat DSN dan Kata Kunci dan Atribut String Koneksi.

  1. Di editor teks, buat file baru bernama sqltest.py.

  2. Tambahkan kode berikut.

    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)
    

Menjalankan kode

  1. Di jendela perintah, jalankan perintah berikut ini:

    python sqltest.py
    
  2. Verifikasi bahwa database dan kolasenya dikembalikan, lalu tutup jendela perintah.

    Jika Anda menerima kesalahan:

    • Verifikasi bahwa nama server, nama database, nama pengguna, dan kata sandi yang Anda gunakan sudah benar.

    • Jika Anda menjalankan kode dari lingkungan lokal, verifikasi bahwa firewall sumber daya Azure yang coba Anda akses dikonfigurasi untuk mengizinkan akses dari alamat IP lingkungan Anda.