Bagikan melalui


Nama Perwakilan Layanan (SPN) dalam Koneksi Klien (OLE DB) di Klien Asli SQL Server

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Unduh driver OLE DB

Artikel ini menjelaskan properti OLE DB dan fungsi anggota yang mendukung nama prinsipal layanan (SPN) dalam aplikasi klien. Untuk informasi selengkapnya tentang SPN di aplikasi klien, lihat Dukungan Nama Prinsipal Layanan (SPN) di Koneksi Klien. Untuk sampel, lihat Autentikasi Kerberos Terintegrasi (OLE DB).

Kata Kunci String Inisialisasi Penyedia

Kata kunci string inisialisasi penyedia berikut mendukung SPN dalam aplikasi OLE DB. Dalam tabel berikut, nilai di kolom kata kunci digunakan untuk string penyedia IDBInitialize::Initialize. Nilai dalam kolom deskripsi digunakan dalam string inisialisasi saat menyambungkan menggunakan ADO atau IDataInitialize::GetDataSource.

Kata kunci Deskripsi Nilai
ServerSPN Server SPN SPN untuk server. Nilai default adalah string kosong, yang menyebabkan Driver OLE DB untuk SQL Server menggunakan SPN default yang dihasilkan penyedia.
FailoverPartnerSPN SPN Mitra Failover SPN untuk mitra failover. Nilai default adalah string kosong, yang menyebabkan Driver OLE DB untuk SQL Server menggunakan SPN default yang dihasilkan penyedia.

Properti Inisialisasi Sumber Data

Properti berikut dalam kumpulan properti DBPROPSET_SQLSERVERDBINIT memungkinkan aplikasi menentukan atau membaca SPN.

Nama Tipe Penggunaan
SSPROP_INIT_SERVERSPN VT_BSTR, baca/tulis Menentukan SPN untuk server. Nilai default adalah string kosong, yang menyebabkan Driver OLE DB untuk SQL Server menggunakan SPN default yang dihasilkan penyedia.
SSPROP_INIT_FAILOVERPARTNERSPN VT_BSTR, baca/tulis Menentukan SPN untuk mitra failover. Nilai default adalah string kosong, yang menyebabkan Driver OLE DB untuk SQL Server menggunakan SPN default yang dihasilkan penyedia.
SSPROP_INIT_DISCOVEREDSERVERSPN VT_BSTR, baca saja Digunakan untuk mengkueri SPN server koneksi. (Versi 18.6.3 atau yang lebih baru)

Properti Sumber Data

Properti berikut dalam kumpulan properti DBPROPSET_SQLSERVERDATASOURCEINFO memungkinkan aplikasi menemukan metode autentikasi.

Nama Tipe Penggunaan
SSPROP_INTEGRATEDAUTHENTICATIONMETHOD VT_BSTR, readonly Mengembalikan metode autentikasi yang digunakan untuk koneksi. Nilai yang dikembalikan ke aplikasi adalah nilai yang dikembalikan Windows ke Driver OLE DB untuk SQL Server. Berikut ini adalah nilai yang mungkin:
"NTLM", yang dikembalikan ketika koneksi dibuka menggunakan autentikasi NTLM.
"Kerberos", yang dikembalikan ketika koneksi dibuka menggunakan autentikasi Kerberos.

Jika koneksi telah dibuka dan metode autentikasi tidak dapat ditentukan, VT_EMPTY dikembalikan.

Properti ini hanya dapat dibaca ketika sumber data telah diinisialisasi. Jika Anda mencoba membaca properti sebelum sumber data diinisialisasi, IDBProperties::GetProperies akan mengembalikan DB_S_ERRORSOCCURRED atau DB_E_ERRORSOCCURRED, sesuai, dan DBPROPSTATUS_NOTSUPPORTED akan diatur dalam DBPROPSET_PROPERTIESINERROR untuk properti ini. Perilaku ini sesuai dengan spesifikasi inti OLE DB.
SSPROP_MUTUALLYAUTHENTICATED VT_BOOL, readonly Mengembalikan VARIANT_TRUE jika server pada koneksi saling diautentikasi; jika tidak, mengembalikan VARIANT_FALSE.

Properti ini hanya dapat dibaca ketika sumber data telah diinisialisasi. Jika ada upaya untuk membaca properti sebelum sumber data diinisialisasi, IDBProperties::GetProperies akan mengembalikan DB_S_ERRORSOCCURRED atau DB_E_ERRORSOCCURRED, yang sesuai, dan DBPROPSTATUS_NOTSUPPORTED akan diatur dalam DBPROPSET_PROPERTIESINERROR untuk properti ini. Perilaku ini sesuai dengan spesifikasi inti OLE DB

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

Dukungan API OLE DB untuk SPN

Tabel berikut ini menjelaskan fungsi anggota OLE DB yang mendukung SPN dalam koneksi klien:

Fungsi anggota Deskripsi
IDataInitialize::GetDataSource pwszInitializationString dapat berisi kata kunci baru ServerSPN dan FailoverPartnerSPN.
IDataInitialize::GetInitializationString Jika SSPROP_INIT_SERVERSPN dan SSPROP_INIT_FAILOVERPARTNERSPN memiliki nilai non-default, nilai tersebut akan disertakan dalam string inisialisasi melalui ppwszInitString sebagai nilai kata kunci untuk ServerSPN dan FailoverPartnerSPN. Jika tidak, kata kunci ini tidak akan disertakan dalam string inisialisasi.
IDBInitialize::Initialize Jika permintaan diaktifkan dengan mengatur DBPROP_INIT_PROMPT di properti inisialisasi sumber data, kotak dialog Masuk OLE DB akan ditampilkan. Ini memungkinkan SPN dimasukkan untuk server utama dan mitra failover-nya.

String penyedia di DPPROP_INIT_PROVIDERSTRING, jika diatur, akan mengenali kata kunci baru ServerSPN dan FailoverPartnerSPN dan menggunakan nilainya, jika ada, untuk menginisialisasi SSPROP_INIT_SERVER_SPN dan SSPROP_INIT_FAILOVER_PARTNER_SPN.

IDBProperties::SetProperties dapat dipanggil untuk mengatur properti SSPROP_INIT_SERVER_SPN dan SSPROP_INIT_FAILOVER_PARTNER_SPN sebelum IDBInitialize::Initialize dipanggil. Ini adalah alternatif untuk menggunakan string penyedia.

Jika properti diatur di lebih dari satu tempat, nilai yang ditetapkan secara terprogram lebih diutamakan daripada nilai yang ditetapkan dalam string penyedia. Nilai yang ditetapkan dalam string inisialisasi lebih diutamakan daripada nilai yang ditetapkan dalam kotak dialog masuk.

Jika kata kunci yang sama muncul lebih dari sekali dalam string penyedia, nilai dari kemunculan pertama lebih diutamakan.
IDBProperties::GetProperties IDBProperties::GetProperties dapat dipanggil untuk mendapatkan nilai properti inisialisasi sumber data baru SSPROP_INIT_SERVERSPN dan SSPROP_INIT_FAILOVERPARTNERSPN, dan properti sumber data baru SSPROP_AUTHENTICATIONMETHOD dan SSPROP_MUTUALLYAUTHENTICATED.
IDBProperties::GetPropertyInfo IdbProperties::GetPropertyInfo akan menyertakan properti inisialisasi sumber data baru SSPROP_INIT_SERVERSPN dan SSPROP_INIT_FAILOVERPARTNERSPN, atau properti sumber data baru SSPROP_AUTHENTICATION_METHOD dan SSPROP_MUTUALLYAUTHENTICATED.
IDBProperties::SetProperties IDBProperties::SetProperties dapat dipanggil untuk mengatur nilai properti inisialisasi sumber data baru SSPROP_INITSERVERSPN dan SSPROP_INIT_FAILOVERPARTNERSPN.

Properti ini dapat diatur kapan saja, tetapi jika sumber data sudah terbuka, kesalahan berikut akan dikembalikan: DB_E_ERRORSOCCURRED, "Operasi OLE DB beberapa langkah menghasilkan kesalahan. Periksa setiap nilai status OLE DB, jika tersedia. Tidak ada pekerjaan yang dilakukan."

Lihat Juga

Driver OLE DB untuk Pemrograman SQL Server