Nama Perwakilan Layanan (SPN) dalam Koneksi Klien (ODBC)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan aplikasi baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server atau Microsoft ODBC Driver terbaru untuk SQL Server ke depannya. Untuk SQLNCLI yang dikirim sebagai komponen SQL Server Database Engine (versi 2012 hingga 2019), lihat pengecualian Siklus Hidup Dukungan ini.

Topik ini menjelaskan atribut dan fungsi ODBC yang mendukung nama perwakilan layanan (SPN) dalam aplikasi klien. Untuk informasi selengkapnya tentang SPN dalam aplikasi klien, lihat Dukungan Nama Prinsipal Layanan (SPN) di Koneksi Klien dan Mendapatkan Autentikasi Kerberos Timbal Balik.

Kata Kunci String Koneksi

Kata kunci string koneksi berikut memungkinkan aplikasi klien menentukan SPN.

Kata kunci Nilai
ServerSPN SPN untuk server. Nilai default adalah string kosong, yang menyebabkan SQL Server Native Client menggunakan SPN default yang dihasilkan driver.
FailoverPartnerSPN SPN untuk mitra failover. Nilai default adalah string kosong, yang menyebabkan SQL Server Native Client menggunakan SPN default yang dihasilkan driver.

Atribut Sambungan

Atribut koneksi berikut memungkinkan aplikasi klien menentukan SPN dan kueri untuk metode autentikasi.

Nama Jenis Penggunaan
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, baca/tulis Menentukan SPN untuk server. Nilai default adalah string kosong, yang menyebabkan SQL Server Native Client menggunakan SPN default yang dihasilkan driver.

Atribut ini dapat dikueri hanya setelah diatur secara terprogram, atau setelah koneksi dibuka. Jika upaya dilakukan untuk mengkueri atribut ini pada koneksi yang tidak terbuka dan atribut belum diatur secara terprogram, SQL_ERROR dikembalikan, dan rekaman diagnostik dicatat dengan SQLState 08003 dan pesan "Koneksi tidak terbuka".

Jika upaya dilakukan untuk mengatur atribut ini saat koneksi terbuka, SQL_ERROR dikembalikan, dan rekaman diagnostik dicatat dengan SQLState HY011 dan pesan "Operasi tidak valid saat ini".
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, baca-saja Mengembalikan metode autentikasi yang digunakan untuk koneksi. Nilai yang dikembalikan ke aplikasi adalah nilai yang dikembalikan Windows ke SQL Server Native Client. Kemungkinan nilai adalah:

"NTLM", yang dikembalikan ketika koneksi dibuka menggunakan autentikasi NTLM.

"Kerberos", yang dikembalikan ketika koneksi dibuka menggunakan autentikasi Kerberos.



Atribut ini hanya dapat dibaca untuk sambungan terbuka yang menggunakan Autentikasi Windows. Jika upaya dilakukan untuk membacanya sebelum koneksi dibuka, SQL_ERROR dikembalikan, dan kesalahan dicatat dengan SQLState 08003 dan pesan "Koneksi tidak terbuka".

Jika atribut ini dikueri pada koneksi yang tidak menggunakan Autentikasi Windows, SQL_ERROR dikembalikan, dan kesalahan dicatat dengan SQLState HY092 dan pesan "Pengidentifikasi atribut/opsi tidak valid (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD hanya tersedia untuk Koneksi Tepercaya)".

Jika metode autentikasi tidak dapat ditentukan, SQL_ERROR dikembalikan, dan kesalahan dicatat dengan SQLState HY000 dan pesan "Kesalahan umum".
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, baca-saja Mengembalikan SQL_TRUE jika server dalam koneksi saling diautentikasi; jika tidak, mengembalikan SQL_FALSE.

Atribut ini hanya dapat dibaca untuk koneksi terbuka. Jika upaya dilakukan untuk membacanya sebelum koneksi dibuka, SQL_ERROR dikembalikan, dan kesalahan dicatat dengan SQLState 08003 dan pesan "Koneksi tidak terbuka".

Jika atribut ini dikueri untuk koneksi yang tidak menggunakan Autentikasi Windows, SQL_FALSE dikembalikan.

Dukungan Fungsi ODBC untuk Menentukan SPN

Fungsi ODBC berikut mendukung aplikasi klien dan SPN:

Lihat Juga

SQL Server Native Client (ODBC)