Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini mencantumkan kata kunci untuk string koneksi dan DSN, serta atribut koneksi untuk SQLSetConnectAttr dan SQLGetConnectAttr, yang tersedia dalam Driver ODBC untuk SQL Server.
Kata kunci DSN dan string koneksi serta atribut koneksi yang didukung
Tabel berikut mencantumkan kata kunci dan atribut yang tersedia untuk setiap platform (L: Linux; M: macOS; W: Windows). Pilih kata kunci atau atribut untuk detail selengkapnya.
Berikut beberapa kata kunci string koneksi dan atribut koneksi yang tidak didokumentasikan dalam Using Connection String Keywords with SQL Server Native Client, SQLSetConnectAttr, dan SQLSetConnectAttr Function.
Deskripsi
Menjelaskan sumber data.
SQL_COPT_SS_ANSI_OEM
Mengontrol konversi data ANSI ke OEM.
| Nilai atribut | Deskripsi |
|---|---|
SQL_AO_OFF (standar) |
Penerjemahan belum selesai. |
SQL_AO_ON |
Terjemahan selesai. |
SQL_COPT_SS_AUTOBEGINTXN
Mulai dari versi 17.6, saat autocommit dimatikan, gunakan opsi ini untuk mengontrol otomatis BEGIN TRANSACTION setelah ROLLBACK atau COMMIT.
| Nilai atribut | Deskripsi |
|---|---|
SQL_AUTOBEGINTXN_ON (standar) |
Otomatis BEGIN TRANSACTION setelah ROLLBACK atau COMMIT. |
SQL_AUTOBEGINTXN_OFF |
Tidak ada yang otomatis BEGIN TRANSACTION setelah ROLLBACK atau COMMIT. |
SQL_COPT_SS_FALLBACK_CONNECT
Mengontrol penggunaan koneksi fallback SQL Server. Opsi ini tidak lagi didukung.
| Nilai atribut | Deskripsi |
|---|---|
SQL_FB_OFF (standar) |
Menonaktifkan koneksi cadangan. |
SQL_FB_ON |
Mengaktifkan koneksi cadangan. |
Kata kunci string koneksi baru dan atribut koneksi
Autentikasi - SQL_COPT_SS_AUTHENTICATION
Mengatur mode autentikasi yang akan digunakan saat menyambungkan ke SQL Server. Untuk informasi selengkapnya, lihat Menggunakan Microsoft Entra ID dengan Driver ODBC.
| Nilai kata kunci | Nilai atribut | Deskripsi |
|---|---|---|
SQL_AU_NONE (standar) |
Tidak diatur. Kombinasi atribut lain menentukan mode autentikasi. | |
SqlPassword |
SQL_AU_PASSWORD |
Autentikasi SQL Server dengan nama pengguna dan kata sandi. |
ActiveDirectoryIntegrated |
SQL_AU_AD_INTEGRATED |
Autentikasi terintegrasi Microsoft Entra |
ActiveDirectoryInteractive |
SQL_AU_AD_INTERACTIVE |
Autentikasi interaktif Microsoft Entra. |
ActiveDirectoryMsi |
SQL_AU_AD_MSI |
Autentikasi identitas terkelola Microsoft Entra. Untuk identitas yang diberikan pengguna, UID diatur ke ID objek dari identitas pengguna. |
ActiveDirectoryServicePrincipal |
SQL_AU_AD_SPA |
Autentikasi service principal Microsoft Entra.
UID diatur ke ID klien milik prinsipal layanan.
PWD disetel ke rahasia klien. |
ActiveDirectoryPassword |
SQL_AU_AD_PASSWORD |
[TIDAK DIGUNAKAN LAGI] Autentikasi kata sandi Microsoft Entra.ActiveDirectoryPassword tidak digunakan lagi. Untuk informasi selengkapnya, lihat ActiveDirectoryPassword tidak digunakan lagi. |
SQL_AU_RESET |
Belum disetel. Mengesampingkan setelan DSN atau string koneksi apa pun. |
Catatan
Saat menggunakan kata kunci atau atribut Authentication, tetapkan pengaturan Encrypt secara eksplisit ke nilai yang diinginkan dalam string koneksi, DSN, atau atribut koneksi. Lihat Menggunakan Kata Kunci String Koneksi dengan Klien Native SQL Server untuk detail selengkapnya.
ColumnEncryption - SQL_COPT_SS_COLUMN_ENCRYPTION
Mengatur enkripsi kolom transparan (Always Encrypted). Untuk informasi selengkapnya, lihat Menggunakan Always Encrypted dengan Driver ODBC untuk SQL Server.
| Nilai kata kunci | Nilai atribut | Deskripsi |
|---|---|---|
Enabled |
SQL_CE_ENABLED |
Mengaktifkan Always Encrypted. |
Disabled (standar) |
SQL_CE_DISABLED |
Menonaktifkan Always Encrypted. |
SQL_CE_RESULTSETONLY |
Mengaktifkan dekripsi saja (hasil dan mengembalikan nilai). |
ConcatNullYieldsNull - SQL_COPT_SS_CONCAT_NULL (Opsi pengaturan SQL yang menentukan bagaimana nilai NULL dikonkatkan dengan data lainnya)
Mengontrol penggunaan penanganan ISO pada NULL saat menggabungkan string. Untuk informasi selengkapnya, lihat SET CONCAT_NULL_YIELDS_NULL .
| Nilai kata kunci | Nilai atribut | Deskripsi |
|---|---|---|
Yes (standar) |
SQL_CN_ON |
NULL penggabungan menghasilkan NULL. |
No |
SQL_CN_OFF |
NULL penggabungan menghasilkan string. |
Enkripsi
Menentukan apakah koneksi menggunakan enkripsi TLS melalui jaringan. Nilai yang mungkin adalah yes/mandatory(18.0+),no/optional (18.0+), dan strict(18.0+). Nilai default ada yes di versi 18.0+ dan no di versi sebelumnya.
Terlepas dari pengaturan untuk Encrypt, kredensial masuk server (nama pengguna dan kata sandi) selalu dienkripsi.
Pengaturan Encrypt, TrustServerCertificate, dan sisi Force Encryption server menentukan apakah koneksi dienkripsi melalui jaringan. Tabel berikut ini memperlihatkan efek pengaturan ini.
Driver ODBC versi 18 atau yang lebih baru
| Pengaturan Enkripsi | Sertifikat Server Kepercayaan | Paksa Enkripsi Server | Hasil |
|---|---|---|---|
| Tidak | Tidak | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server tidak dienkripsi. |
| Tidak | Ya | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server tidak dienkripsi. |
| Ya | Tidak | Tidak | Sertifikat server diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Ya | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Tidak | Tidak | Ya | Sertifikat server diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Tidak | Ya | Ya | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Tidak | Ya | Sertifikat server diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Ya | Ya | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ketat | - | - |
TrustServerCertificate diabaikan. Sertifikat server diperiksa.Data yang dikirim antara klien dan server dienkripsi. |
Catatan
Nilai Strict hanya tersedia pada server yang mendukung koneksi TDS 8.0.
ODBC Driver 17 dan versi yang lebih lama
| Pengaturan Enkripsi | Sertifikat Server Kepercayaan | Paksa Enkripsi Server | Hasil |
|---|---|---|---|
| Tidak | Tidak | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server tidak dienkripsi. |
| Tidak | Ya | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server tidak dienkripsi. |
| Ya | Tidak | Tidak | Sertifikat server diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Ya | Tidak | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Tidak | Tidak | Ya | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Tidak | Ya | Ya | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Tidak | Ya | Sertifikat server diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
| Ya | Ya | Ya | Sertifikat server tidak diperiksa. Data yang dikirim antara klien dan server dienkripsi. |
Penyelesaian IP Jaringan Transparan - SQL_COPT_SS_TNIR
Mengontrol fitur Transparent Network IP Resolution, mekanisme cadangan multi-IP lawas untuk driver ODBC. Pengaturan ini tidak memengaruhi urutan koneksi ketika MultiSubnetFailover=Yes, yang merupakan pengaturan yang direkomendasikan untuk Azure SQL Database, Azure SQL Managed Instance, database SQL di Microsoft Fabric, availability group listeners, dan failover cluster instances. Untuk informasi lebih lanjut, lihat Gunakan resolusi ip jaringan transparan dengan driver ODBC atau Ketersediaan tinggi dan pemulihan bencana.
| Nilai kata kunci | Nilai atribut | Deskripsi |
|---|---|---|
Enabled (standar) |
SQL_IS_ON |
Memungkinkan resolusi IP jaringan yang transparan. |
Disabled |
SQL_IS_OFF |
Menonaktifkan Resolusi IP Transparan untuk Jaringan. |
GunakanFMTONLY
Mengontrol penggunaan SET FMTONLY metadata saat menyambungkan ke SQL Server 2012 dan yang lebih baru.
| Nilai kata kunci | Deskripsi |
|---|---|
No (standar) |
Gunakan sp_describe_first_result_set untuk metadata jika tersedia. |
Yes |
Gunakan SET FMTONLY untuk metadata. |
Replikasi
Menentukan penggunaan login replikasi pada Driver ODBC versi 17.8 dan yang lebih baru.
| Nilai kata kunci | Deskripsi |
|---|---|
No (standar) |
Login replikasi tidak digunakan. |
Yes |
Pemicu dengan NOT FOR REPLICATION opsi tidak diaktifkan pada koneksi. |
RetryExec
Logika coba lagi yang dapat dikonfigurasi tersedia mulai versi 18.1. Ini secara otomatis menjalankan kembali panggilan fungsi ODBC tertentu berdasarkan kondisi yang dapat dikonfigurasi. Aktifkan fitur ini melalui string koneksi dengan menggunakan RetryExec kata kunci, beserta daftar aturan retry. Setiap aturan percobaan ulang memiliki tiga komponen yang dipisahkan oleh tanda titik dua: pencocokan kesalahan, kebijakan percobaan ulang, dan pencocokan kueri.
Kecocokan kueri menentukan aturan percobaan ulang yang akan digunakan untuk eksekusi tertentu. Teks ini cocok dengan teks perintah masuk (SQLExecDirect) atau teks perintah yang telah disiapkan dalam objek pernyataan (SQLExecute). Jika lebih dari satu aturan cocok, aturan pencocokan pertama dalam daftar digunakan. Perilaku ini memungkinkan Anda mencantumkan aturan secara berurutan semakin umum. Jika tidak ada aturan yang cocok, percobaan ulang tidak akan diterapkan.
Ketika eksekusi menghasilkan kesalahan dan ada aturan percobaan ulang yang berlaku, kecocokan kesalahannya menentukan apakah eksekusi harus dicoba ulang.
Nilai RetryExec kata kunci adalah daftar aturan percobaan ulang yang dipisahkan dengan titik koma.
RetryExec={rule1;rule2}
Aturan coba lagi adalah sebagai berikut: <errormatch>:<retrypolicy>:<querymatch>
Kecocokan Kesalahan: Daftar kode kesalahan yang dipisahkan koma. Misalnya, menentukan
1000,2000akan menampilkan kode error yang ingin Anda coba ulang.Kebijakan Coba Ulang: Menentukan penundaan hingga percobaan ulang berikutnya. Parameter pertama adalah jumlah pengulangan, dan parameter kedua adalah delay. Misalnya,
3,10+7berarti tiga percobaan dimulai dari 10, dan setiap percobaan berikutnya bertambah 7 detik. Jika Anda tidak menentukan+7, setiap percobaan berikutnya akan menjadi dua kali lipat secara eksponensial.Pencocokan Kueri: Menentukan kueri yang ingin Anda cocokkan. Jika Anda tidak menentukan apa pun, aturan ini berlaku untuk semua query. Menentukan
SELECTberarti semua kueri yang dimulai denganSELECT.
Menggabungkan ketiga komponen tersebut untuk digunakan dalam string koneksi:
RetryExec={1000,2000:3,10+7:SELECT}
Aturan ini berarti: Untuk kesalahan 1000 dan 2000 pada kueri yang dimulai dengan SELECT, coba ulang dua kali dengan jeda awal 10 detik, dan tambahkan 7 detik untuk setiap percobaan berikutnya.
Contoh
40501,40540:4,5
Untuk kesalahan 40501 dan 40540, coba ulang hingga empat kali, dengan jeda awal 5 detik, dan penggandaan eksponensial di antara setiap percobaan ulang. Aturan ini berlaku untuk semua kueri.
49919:2,10+:CREATE
Untuk kesalahan 49919 pada kueri yang dimulai dengan CREATE, coba ulang paling banyak dua kali, awalnya setelah 10 detik, lalu 20 detik.
49918,40501,10928:5,10+5:SELECT c1
Untuk kesalahan 49918, , dan 10928 pada kueri yang dimulai dengan SELECT c1, coba ulang hingga lima kali, tunggu 10 detik pada percobaan pertama dan tambah waktu tunggu 5 detik setelahnya40501.
Tentukan tiga aturan sebelumnya bersama-sama dalam string koneksi sebagai berikut:
RetryExec={49918,40501,10928:5,10+5:SELECT c1;49919:2,10+:CREATE;40501,40540:4,5}
Letakkan aturan paling umum (match-all) di akhir, agar dua aturan spesifik sebelumnya dapat cocok dengan query masing-masing.
ClientCertificate
Menentukan sertifikat untuk autentikasi dengan koneksi loopback. Opsi ini hanya tersedia di SQL Server on Linux. Opsinya adalah:
| Nilai Opsi | Deskripsi |
|---|---|
sha1:<hash_value> |
Driver ODBC menggunakan hash SHA1 untuk menemukan sertifikat di Windows Certificate Store. |
subject:<subject> |
Driver ODBC menggunakan subjek untuk menemukan sertifikat di Windows Certificate Store. |
file:<file_location>[,password:<password>] |
Driver ODBC menggunakan file sertifikat. |
Jika sertifikat dalam PFX format dan kunci privat di dalam PFX sertifikat dilindungi kata sandi, sertakan kata kunci tersebut password . Untuk sertifikat dalam PEM dan DER format, sertakan atribut.ClientKey
ClientKey
Menentukan lokasi berkas kunci privat untuk sertifikat DER atau PEM yang ditentukan oleh atribut ClientCertificate. Format:
| Nilai Opsi | Deskripsi |
|---|---|
file:<file_location>[,password:<password>] |
Menentukan lokasi file kunci privat. |
Jika file kunci privat dilindungi kata sandi, sertakan kata kunci tersebut password . Jika kata sandi mengandung karakter apa pun , , tambahkan karakter tambahan , segera setelah setiap karakter. Misalnya, jika kata sandi adalah a,b,c, kata sandi yang di-escape dalam string koneksi adalah a,,b,,c.
HostnameInCertificate
Menentukan nama host yang diharapkan dalam sertifikat server saat enkripsi dinegosiasikan, jika berbeda dari nilai default yang berasal dari Addr, Address, atau Server. Opsi HostnameInCertificate diabaikan saat Anda menggunakan opsi ServerCertificate.
IpAddressPreference
Mulai dari versi 18.1, gunakan opsi ini untuk menentukan jenis alamat IP yang akan diprioritaskan untuk koneksi.
Opsi yang mungkin adalah IPv4First, IPv6First, dan UsePlatformDefault.
UsePlatformDefault terhubung ke alamat dalam urutan yang disediakan oleh panggilan sistem untuk melakukan resolusi nama server. Nilai defaultnya adalah IPv4First, yang sesuai dengan perilaku pada versi sebelumnya.
Sertifikat Server
Mulai versi 18.1, gunakan opsi ini dengan mode enkripsi ketat. Gunakan kata kunci untuk ServerCertificate menentukan jalur ke file sertifikat agar dicocokkan dengan sertifikat TLS/SSL SQL Server. Pencocokan dilakukan sebagai pengganti validasi sertifikat standar (kedaluwarsa, nama host, rantai kepercayaan, dll.). Format sertifikat yang diterima adalah PEM, , DERdan CER. Jika Anda menentukan opsi ini, sertifikat SQL Server akan diperiksa dengan melihat apakah ServerCertificate yang diberikan benar-benar cocok secara persis.
SQL_COPT_SS_ACCESS_TOKEN
Gunakan token akses Microsoft Entra untuk autentikasi. Untuk informasi selengkapnya, lihat Menggunakan Microsoft Entra ID dengan Driver ODBC.
| Nilai atribut | Deskripsi |
|---|---|
NULL (standar) |
Tidak ada token akses yang disediakan. |
ACCESSTOKEN* |
Penunjuk ke token akses. |
SQL_COPT_SS_CEKEYSTOREDATA
Berkomunikasi dengan pustaka penyedia keystore yang telah dimuat. Mengatur enkripsi kolom transparan (Always Encrypted). Atribut ini tidak memiliki nilai default. Untuk informasi selengkapnya, lihat Penyedia Keystore Kustom.
| Nilai atribut | Deskripsi |
|---|---|
CEKEYSTOREDATA * |
Struktur data komunikasi untuk pustaka penyedia keystore |
SQL_COPT_SS_CEKEYSTOREPROVIDER
Memuat pustaka penyedia keystore untuk Always Encrypted, atau mengambil nama-nama pustaka penyedia keystore yang telah dimuat. Untuk informasi selengkapnya, lihat Penyedia Keystore Kustom. Atribut ini tidak memiliki nilai default.
| Nilai atribut | Deskripsi |
|---|---|
char * |
Jalur ke pustaka penyedia keystore |
SQL_COPT_SS_ENLIST_IN_XA
Untuk mengaktifkan transaksi XA dengan Pemroses Transaksi (TP) yang kompatibel dengan XA, aplikasi perlu memanggil SQLSetConnectAttr dengan SQL_COPT_SS_ENLIST_IN_XA dan pointer ke objek XACALLPARAM. Opsi ini didukung pada Windows (17.3+), Linux, dan macOS.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, param, SQL_IS_POINTER); // XACALLPARAM *param
Untuk mengaitkan transaksi XA hanya dengan koneksi ODBC, berikan TRUE atau FALSE dengan SQL_COPT_SS_ENLIST_IN_XA pengganti pointer saat memanggil SQLSetConnectAttr. Pengaturan ini hanya valid pada Windows dan tidak dapat digunakan untuk menentukan operasi XA melalui aplikasi klien.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, (SQLPOINTER)TRUE, 0);
| Nilai | Deskripsi | Platform |
|---|---|---|
XACALLPARAM objek* |
Pointer ke objek XACALLPARAM. |
Windows, Linux, dan macOS |
TRUE |
Mengaitkan transaksi XA dengan koneksi ODBC. Semua aktivitas database terkait dilakukan di bawah perlindungan transaksi XA. | Windows |
FALSE |
Memisahkan transaksi dengan koneksi ODBC. | Windows |
Untuk informasi selengkapnya tentang transaksi XA, lihat Menggunakan Transaksi XA.
SQL_COPT_SS_LONGASMAX
Mengirim tipe data panjang ke server sebagai tipe data maksimum.
| Nilai atribut | Deskripsi |
|---|---|
No (standar) |
Jangan mengonversi tipe panjang menjadi tipe maksimum saat mengirim. |
Yes |
Konversi data dari tipe panjang ke tipe maksimum saat mengirim. |
SQL_COPT_SS_SPID
Mengambil ID sesi koneksi. Properti ini setara dengan variabel T-SQL @@SPID, kecuali properti ini tidak memerlukan komunikasi bolak-balik tambahan ke server.
| Nilai atribut | Deskripsi |
|---|---|
DWORD |
SPID |