Menggunakan Autentikasi Terintegrasi

Unduh driver ODBC

Driver Microsoft ODBC untuk SQL Server di Linux dan macOS mendukung koneksi yang menggunakan autentikasi terintegrasi Kerberos. Ini mendukung MIT Kerberos Key Distribution Center (KDC), dan bekerja dengan pustaka Generic Security Services Application Program Interface (GSSAPI) dan Kerberos v5.

Pada versi 17.6, driver juga mendukung autentikasi terintegrasi dengan ID Microsoft Entra (sebelumnya Azure Active Directory) menggunakan akun federasi, batasan pustaka sistem sekalipun. Lihat Menggunakan ID Microsoft Entra untuk informasi selengkapnya.

Menggunakan Autentikasi Terintegrasi untuk Koneksi ke SQL Server dari Aplikasi ODBC

Anda dapat mengaktifkan autentikasi terintegrasi Kerberos dengan menentukan Trusted_Koneksi ion=ya di string koneksi SQLDriver Koneksi atau SQL Koneksi. Misalnya:

Driver='ODBC Driver 18 for SQL Server';Server=your_server;Encrypt=yes;Trusted_Connection=yes  

Saat menyambungkan dengan DSN, Anda juga dapat menambahkan Trusted_Koneksi ion=yes ke entri DSN di odbc.ini.

Opsi -E dan opsi juga dapat digunakan untuk menentukan autentikasi terintegrasi; lihat Koneksi dengan sqlcmd dan Koneksi dengan bcp untuk informasi selengkapnya.bcp-Tsqlcmd

Pastikan bahwa prinsipal klien yang akan terhubung ke SQL Server sudah diautentikasi dengan Kerberos KDC.

ServerSPN dan FailoverPartnerSPN tidak didukung.

Menyebarkan Aplikasi Driver ODBC Linux atau macOS yang Dirancang untuk Dijalankan sebagai Layanan

Administrator sistem dapat menyebarkan aplikasi untuk dijalankan sebagai layanan yang menggunakan Autentikasi Kerberos untuk menyambungkan ke SQL Server.

Pertama-tama Anda perlu mengonfigurasi Kerberos pada klien dan kemudian memastikan bahwa aplikasi dapat menggunakan kredensial Kerberos dari prinsip default.

Pastikan Anda menggunakan kinit atau PAM (Modul Autentikasi Yang Dapat Dicolokkan) untuk mendapatkan dan menyimpan TGT untuk prinsipal yang digunakan koneksi, melalui salah satu metode berikut:

  • Jalankan kinit, meneruskan nama utama dan kata sandi.

  • Jalankan kinit, meneruskan nama utama dan lokasi file keytab yang berisi kunci utama yang dibuat oleh ktutil.

  • Pastikan bahwa login ke sistem dilakukan menggunakan Kerberos PAM (Modul Autentikasi Yang Dapat Dicolokkan).

Saat aplikasi berjalan sebagai layanan, karena kredensial Kerberos kedaluwarsa berdasarkan desain, perbarui kredensial untuk memastikan ketersediaan layanan berkelanjutan. Driver ODBC tidak memperbarui kredensial itu sendiri; pastikan bahwa ada cron pekerjaan atau skrip yang berjalan secara berkala untuk memperbarui kredensial sebelum kedaluwarsa. Untuk menghindari memerlukan kata sandi untuk setiap perpanjangan, Anda dapat menggunakan file keytab.

Konfigurasi dan Penggunaan Kerberos menyediakan detail tentang cara ke layanan Kerberize di Linux.

Melacak Akses ke Database

Administrator database dapat membuat jejak audit akses ke database saat menggunakan akun sistem untuk mengakses SQL Server menggunakan Autentikasi Terintegrasi.

Masuk ke SQL Server menggunakan akun sistem dan tidak ada fungsionalitas di Linux untuk meniru konteks keamanan. Oleh karena itu, lebih banyak diperlukan untuk menentukan pengguna.

Untuk mengaudit aktivitas di SQL Server atas nama pengguna selain akun sistem, aplikasi harus menggunakan Transact-SQL EXECUTE AS.

Untuk meningkatkan performa aplikasi, aplikasi dapat menggunakan pengumpulan koneksi dengan Autentikasi dan audit Terintegrasi. Namun, menggabungkan pengumpulan koneksi, Autentikasi Terintegrasi, dan audit menciptakan risiko keamanan karena manajer driver unixODBC mengizinkan pengguna yang berbeda untuk menggunakan kembali koneksi yang dikumpulkan. Untuk informasi selengkapnya, lihat Pengumpulan Koneksi ion ODBC.

Sebelum digunakan kembali, aplikasi harus mengatur ulang koneksi yang dikumpulkan dengan menjalankan sp_reset_connection.

Menggunakan Direktori Aktif untuk Mengelola Identitas Pengguna

Administrator sistem aplikasi tidak perlu mengelola set kredensial masuk terpisah untuk SQL Server. Dimungkinkan untuk mengonfigurasi Direktori Aktif sebagai pusat distribusi utama (KDC) untuk Autentikasi Terintegrasi. Lihat Microsoft Kerberos untuk informasi selengkapnya.

Menggunakan Server Tertaut dan Kueri Terdistribusi

Pengembang dapat menyebarkan aplikasi yang menggunakan server tertaut atau kueri terdistribusi tanpa administrator database yang mempertahankan set kredensial SQL terpisah. Dalam situasi ini, pengembang harus mengonfigurasi aplikasi untuk menggunakan autentikasi terintegrasi:

  • Pengguna masuk ke komputer klien dan mengautentikasi ke server aplikasi.

  • Server aplikasi mengautentikasi sebagai database yang berbeda dan tersambung ke SQL Server.

  • SQL Server mengautentikasi sebagai pengguna database ke database lain (SQL Server.

Setelah autentikasi terintegrasi dikonfigurasi, kredensial akan diteruskan ke server tertaut.

Autentikasi Terintegrasi dan sqlcmd

Untuk mengakses SQL Server menggunakan autentikasi terintegrasi, gunakan -E opsi .sqlcmd Pastikan bahwa akun yang berjalan sqlcmd dikaitkan dengan prinsipal klien Kerberos default.

Autentikasi Terintegrasi dan bcp

Untuk mengakses SQL Server menggunakan autentikasi terintegrasi, gunakan -T opsi .bcp Pastikan bahwa akun yang berjalan bcp dikaitkan dengan prinsipal klien Kerberos default.

Ini adalah kesalahan untuk digunakan -T dengan -U opsi atau -P .

Sintaks yang Didukung untuk SPN yang Didaftarkan oleh SQL Server

Sintaks yang digunakan SPN dalam atribut string koneksi atau koneksi adalah sebagai berikut:

Sintaks Deskripsi
MSSQLSvc/fqdn:port SPN default yang dihasilkan penyedia saat TCP digunakan. port adalah nomor port TCP. fqdn adalah nama domain yang sepenuhnya memenuhi syarat.

Mengautentikasi Komputer Linux atau macOS dengan Direktori Aktif

Untuk mengonfigurasi Kerberos, masukkan data ke krb5.conf dalam file. krb5.conf berada di /etc/ tetapi Anda dapat merujuk ke file lain menggunakan sintaks misalnya export KRB5_CONFIG=/home/dbapp/etc/krb5.conf. Berikut ini adalah contoh krb5.conf file:

[libdefaults]  
default_realm = YYYY.CORP.CONTOSO.COM  
dns_lookup_realm = false  
dns_lookup_kdc = true  
ticket_lifetime = 24h  
forwardable = yes  
  
[domain_realm]  
.yyyy.corp.contoso.com = YYYY.CORP.CONTOSO.COM  
.zzzz.corp.contoso.com = ZZZZ.CORP.CONTOSO.COM  

Jika komputer Linux atau macOS Anda dikonfigurasi untuk menggunakan Dynamic Host Configuration Protocol (DHCP) dengan server DHCP Windows yang menyediakan server DNS untuk digunakan, Anda dapat menggunakan dns_lookup_kdc=true. Sekarang, Anda dapat menggunakan Kerberos untuk masuk ke domain Anda dengan mengeluarkan perintah kinit alias@YYYY.CORP.CONTOSO.COM. Parameter yang diteruskan peka kinit huruf besar/kecil dan komputer SQL Server yang dikonfigurasi berada di domain harus menambahkan pengguna alias@YYYY.CORP.CONTOSO.COM tersebut untuk masuk. Sekarang, Anda dapat menggunakan koneksi tepercaya (Trusted_Koneksi ion=YES dalam string koneksi, bcp -T, atau sqlcmd -E).

Waktu pada komputer Linux atau macOS dan waktu pada Kerberos Key Distribution Center (KDC) harus dekat. Pastikan waktu sistem Anda diatur dengan benar, misalnya dengan menggunakan Protokol Waktu Jaringan (NTP).

Jika autentikasi Kerberos gagal, driver ODBC di Linux atau macOS tidak menggunakan autentikasi NTLM.

Untuk informasi selengkapnya tentang mengautentikasi komputer Linux atau macOS dengan Direktori Aktif, lihat Mengautentikasi Klien Linux dengan Direktori Aktif. Untuk informasi selengkapnya tentang mengonfigurasi Kerberos, lihat Dokumentasi MIT Kerberos.

Lihat Juga

Panduan Pemrograman

Catatan Rilis

Menggunakan ID Microsoft Entra