Bagikan melalui


Mengautentikasi dengan ID Microsoft Entra di sqlcmd

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Database SQL di Microsoft Fabric

sqlcmd mendukung berbagai model autentikasi Microsoft Entra, tergantung pada versi mana yang telah Anda instal.

Note

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Untuk mengetahui varian dan versi sqlcmd mana yang diinstal pada sistem Anda, lihat Memeriksa versi utilitas sqlcmd yang diinstal. Untuk informasi tentang cara mendapatkan sqlcmd, lihat Mengunduh dan menginstal utilitas sqlcmd.

sqlcmd (Go) mendukung lebih banyak model autentikasi Microsoft Entra, berdasarkan paket azidentitas. Implementasi bergantung pada konektor Microsoft Entra di driver go-sqlcmd.

Argumen baris perintah

Untuk menggunakan autentikasi Microsoft Entra, Anda dapat menggunakan salah satu dari dua opsi baris perintah.

-G (sebagian besar) kompatibel dengan penggunaannya dalam sqlcmd (ODBC). Jika nama pengguna dan kata sandi disediakan, nama pengguna dan kata sandi akan diautentikasi menggunakan autentikasi kata sandi Microsoft Entra. Jika nama pengguna disediakan, maka digunakan autentikasi interaktif Microsoft Entra, yang dapat menampilkan browser web. Jika tidak ada nama pengguna atau kata sandi yang disediakan, maka digunakan DefaultAzureCredential yang mencoba mengautentikasi melalui berbagai mekanisme.

--authentication-method= dapat digunakan untuk menentukan salah satu jenis autentikasi berikut.

ActiveDirectoryDefault

  • Untuk gambaran umum jenis autentikasi yang digunakan mode ini, lihat Kredensial Azure Default.
  • Pilih metode ini jika skrip otomatisasi database Anda dimaksudkan untuk dijalankan di lingkungan pengembangan lokal dan dalam penyebaran produksi di Azure. Di lingkungan pengembangan, Anda dapat menggunakan rahasia klien atau login Azure CLI. Tanpa mengubah skrip dari lingkungan pengembangan, Anda dapat menggunakan identitas terkelola atau rahasia klien pada penyebaran produksi Anda.
  • Mengatur variabel AZURE_TENANT_ID lingkungan dan AZURE_CLIENT_ID diperlukan untuk DefaultAzureCredential mulai memeriksa konfigurasi lingkungan dan mencari salah satu variabel lingkungan tambahan berikut untuk mengautentikasi:
    • Variabel lingkungan AZURE_CLIENT_SECRET mengatur DefaultAzureCredential untuk memilih ClientSecretCredential.
    • Mengatur variabel lingkungan AZURE_CLIENT_CERTIFICATE_PATH mengonfigurasi DefaultAzureCredential untuk memilih ClientCertificateCredential jika AZURE_CLIENT_SECRET tidak diatur.
  • Mengatur variabel lingkungan AZURE_USERNAME mengonfigurasi DefaultAzureCredential untuk memilih UsernamePasswordCredential jika AZURE_CLIENT_SECRET dan AZURE_CLIENT_CERTIFICATE_PATH tidak diatur.

ActiveDirectoryIntegrated

Metode ini saat ini tidak diimplementasikan, dan kembali ke ActiveDirectoryDefault.

ActiveDirectoryPassword

  • Metode ini mengautentikasi menggunakan nama pengguna dan kata sandi. Ini tidak berfungsi jika MFA diperlukan.

  • Anda memberikan nama pengguna dan kata sandi menggunakan sakelar baris perintah atau SQLCMD variabel lingkungan yang biasa.

  • Atur AZURE_TENANT_ID variabel lingkungan ke ID penyewa server jika tidak menggunakan penyewa bawaan pengguna.

ActiveDirectoryInteractive

Metode ini meluncurkan browser web untuk mengautentikasi pengguna.

ActiveDirectoryManagedIdentity

Gunakan metode ini saat menjalankan sqlcmd (Go) pada Azure VM yang memiliki identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna. Jika menggunakan identitas terkelola yang ditetapkan pengguna, atur nama pengguna ke ID Klien identitas terkelola. Jika menggunakan identitas yang ditetapkan sistem, biarkan nama pengguna kosong.

Contoh ini menunjukkan cara menyambungkan menggunakan Service Assigned Managed Identity (SAMI):

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity

Contoh ini menunjukkan cara menghubungkan dengan Identitas Terkelola yang Ditugaskan Pengguna (UAMI) dengan menambahkan ID Klien dari identitas terkelola yang ditetapkan pengguna.

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>

ActiveDirectoryServicePrincipal

Metode ini mengautentikasi nama pengguna yang disediakan sebagai ID perwakilan layanan dan kata sandi sebagai rahasia klien untuk perwakilan layanan. Berikan nama pengguna dalam formulir <application (client) ID>. Atur SQLCMDPASSWORD variabel ke rahasia klien. Jika menggunakan sertifikat alih-alih rahasia klien, atur AZURE_CLIENT_CERTIFICATE_PATH variabel lingkungan ke jalur file sertifikat.

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>

Variabel lingkungan untuk autentikasi Microsoft Entra

Beberapa pengaturan autentikasi Microsoft Entra tidak memiliki masukan baris perintah, dan beberapa variabel lingkungan dikonsumsi langsung oleh paket yang digunakan oleh azidentitysqlcmd (Go).

Variabel lingkungan ini dapat diatur untuk mengonfigurasi beberapa aspek autentikasi Microsoft Entra dan untuk melewati perilaku default. Selain variabel yang tercantum sebelumnya, berikut ini khusus untuk sqlcmd (Go), dan berlaku untuk beberapa metode.

SQLCMDCLIENTID

Atur variabel lingkungan ini ke pengidentifikasi aplikasi yang terdaftar di Microsoft Entra, yang berwenang untuk mengautentikasi ke Azure SQL Database. Berlaku untuk metode ActiveDirectoryInteractive dan ActiveDirectoryPassword.