Sintaksis String Koneksi

Setiap penyedia data .NET Framework memiliki objek Connection yang diwarisi dari DbConnection serta properti ConnectionString khusus penyedia. Sintaks string koneksi khusus untuk setiap penyedia didokumenkan dalam properti ConnectionString-nya. Tabel berikut mencantumkan empat penyedia data yang termasuk dalam .NET Framework.

penyedia data .NET Framework Deskripsi
System.Data.SqlClient Menyediakan akses data untuk Microsoft SQL Server. Untuk informasi selengkapnya tentang sintaks string koneksi, lihat ConnectionString.
System.Data.OleDb Menyediakan akses data untuk sumber data yang terpapar menggunakan OLE DB. Untuk informasi selengkapnya tentang sintaks string koneksi, lihat ConnectionString.
System.Data.Odbc Menyediakan akses data untuk sumber data yang terpapar menggunakan ODBC. Untuk informasi selengkapnya tentang sintaks string koneksi, lihat ConnectionString.
System.Data.OracleClient Menyediakan akses data untuk Oracle versi 8.1.7 atau yang lebih baru. Untuk informasi selengkapnya tentang sintaks string koneksi, lihat ConnectionString.

Pembangun String Koneksi

ADO.NET 2.0 memperkenalkan pembuat string koneksi berikut untuk penyedia data .NET Framework.

Pembuat string koneksi memungkinkan Anda membuat string koneksi yang valid secara sintaksis pada waktu proses, jadi Anda tidak perlu menggabungkan nilai string koneksi secara manual dalam kode Anda. Untuk informasi selengkapnya, lihat Pembuat String Koneksi.

Autentikasi Windows

Sebaiknya gunakan Autentikasi Windows (terkadang disebut sebagai keamanan terintegrasi) untuk menyambungkan ke sumber data yang mendukungnya. Sintaks yang digunakan dalam string koneksi bervariasi menurut penyedia. Tabel berikut menunjukkan sintaks Autentikasi Windows yang digunakan dengan penyedia data .NET Framework.

Penyedia Sintaks
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

Catatan

Integrated Security=true melontarkan pengecualian saat digunakan dengan penyedia OleDb.

String Koneksi SqlClient

Sintaks untuk string koneksi SqlConnection didokumentasikan di properti SqlConnection.ConnectionString. Anda bisa menggunakan properti ConnectionString untuk mendapatkan atau mengatur string koneksi untuk database SQL Server. Jika Anda perlu menyambungkan ke versi SQL Server yang lebih lama, Anda harus menggunakan Penyedia Data .NET Framework untuk OleDb (System.Data.OleDb). Sebagian besar kata kunci string koneksi juga memetakan ke properti di SqlConnectionStringBuilder.

Penting

Pengaturan default untuk kata kunci Persist Security Info adalah false. Mengaturnya ke true atau yes memungkinkan informasi sensitif keamanan, termasuk ID pengguna dan kata sandi, untuk diperoleh dari koneksi setelah koneksi dibuka. Tetap atur Persist Security Info ke false untuk memastikan bahwa sumber yang tidak tepercaya tidak memiliki akses ke informasi string koneksi sensitif.

Autentikasi Windows dengan SqlClient

Masing-masing bentuk sintaks berikut menggunakan Autentikasi Windows untuk menyambungkan ke database AdventureWorks di server lokal.

"Persist Security Info=False;Integrated Security=true;  
    Initial Catalog=AdventureWorks;Server=MSSQL1"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local)"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local)"  

autentikasi SQL Server dengan SqlClient

Autentikasi Windows lebih disukai untuk menyambungkan ke SQL Server. Namun, jika autentikasi SQL Server diperlukan, gunakan sintaks berikut untuk menentukan nama pengguna dan kata sandi. Dalam contoh ini, tanda bintang digunakan untuk mewakili nama pengguna dan kata sandi yang valid.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"  

Saat Anda menyambungkan ke Azure SQL Database atau ke Azure SQL Data Warehouse dan memberikan info masuk dalam format user@servername, pastikan nilai servername dalam info masuk cocok dengan nilai yang diberikan untuk Server=.

Catatan

Autentikasi Windows lebih diutamakan daripada login SQL Server. Jika Anda menentukan Keamanan Terpadu=true serta nama pengguna dan kata sandi, nama pengguna dan kata sandi akan diabaikan dan autentikasi Windows akan digunakan.

Koneksi contoh SQL Server yang disebutkan

Untuk menyambungkan ke instans SQL Server bernama, gunakan sintaks nama server\nama instans.

"Data Source=MySqlServer\MSSQL1;"  

Anda juga dapat mengatur properti DataSource ke SqlConnectionStringBuilder nama instans saat membuat string koneksi. Properti DataSource objek SqlConnection bersifat baca-saja.

Ketik Perubahan Versi Sistem

Kata kunci Type System Version dalam SqlConnection.ConnectionString menentukan representasi sisi klien dari jenis SQL Server. Lihat SqlConnection.ConnectionString untuk informasi selengkapnya tentang kata kunci Type System Version.

Menghubungkan dan Melampirkan ke Instans Pengguna SQL Server Express

Instans pengguna adalah fitur dalam SQL Server Express. Mereka memungkinkan pengguna yang berjalan di akun Windows lokal yang paling tidak memiliki hak istimewa untuk melampirkan dan menjalankan database SQL Server tanpa memerlukan hak istimewa administratif. Instans pengguna dijalankan dengan kredensial Windows pengguna, bukan sebagai layanan.

Untuk informasi selengkapnya tentang bekerja dengan instans pengguna, lihat Instans Pengguna SQL Server Express.

Menggunakan TrustServerCertificate

Kata kunci TrustServerCertificate hanya valid saat menyambungkan ke instans SQL Server dengan sertifikat yang valid. Bila TrustServerCertificate disetel ke true, lapisan transport akan menggunakan SSL untuk mengenkripsi saluran dan melewati rantai sertifikat untuk memvalidasi kepercayaan.

"TrustServerCertificate=true;"

Catatan

Jika TrustServerCertificate diatur ke true dan enkripsi diaktifkan, tingkat enkripsi yang ditentukan pada server akan digunakan bahkan jika Encrypt diatur ke false dalam string koneksi. Koneksi akan gagal sebaliknya.

Mengaktifkan Enkripsi

Untuk mengaktifkan enkripsi ketika sertifikat belum disediakan di server, opsi Enkripsi Protokol Paksa dan Sertifikat Server Kepercayaan harus diatur dalam Pengelola Konfigurasi SQL Server. Dalam hal ini, enkripsi akan menggunakan sertifikat server yang ditandatangani sendiri tanpa validasi jika tidak ada sertifikat yang dapat diverifikasi yang telah disediakan di server.

Pengaturan aplikasi tidak dapat mengurangi tingkat keamanan yang dikonfigurasi dalam SQL Server, tetapi secara opsional dapat memperkuatnya. Aplikasi dapat meminta enkripsi dengan mengatur TrustServerCertificate dan kata kunci Encrypt ke true, menjamin bahwa enkripsi terjadi bahkan ketika sertifikat server belum disediakan dan Enkripsi Protokol Paksa belum dikonfigurasi untuk klien. Namun, jika TrustServerCertificate tidak diaktifkan dalam konfigurasi klien, sertifikat server yang disediakan masih diperlukan.

Tabel berikut menjelaskan semua kasus.

Pengaturan klien Enkripsi Protokol Paksa Pengaturan klien Sertifikat Server Kepercayaan Enkripsi/Gunakan Enkripsi untuk String/atribut koneksi data String/atribut koneksi Sertifikat Server Kepercayaan Hasil
Tidak T/A Tidak (default) Diabaikan Tidak ada enkripsi yang terjadi.
Tidak T/A Ya Tidak (default) Enkripsi terjadi hanya jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Tidak T/A Ya Ya Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ya Tidak Diabaikan Diabaikan Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi; jika tidak, upaya koneksi gagal.
Ya Ya Tidak (default) Diabaikan Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ya Ya Ya Tidak (default) Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi; jika tidak, upaya koneksi gagal.
Ya Ya Ya Ya Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.

Untuk informasi selengkapnya, lihat Menggunakan Enkripsi Tanpa Validasi.

String Koneksi OleDb

Properti ConnectionString dari OleDbConnection memungkinkan Anda mendapatkan atau mengatur string koneksi untuk sumber data OLE DB, seperti Microsoft Access. Anda juga dapat membuat string koneksi OleDb pada durasi dengan menggunakan kelas OleDbConnectionStringBuilder.

Sintaks String Koneksi OleDb

Anda harus menentukan nama penyedia untuk string koneksi OleDbConnection. String koneksi berikut ini tersambung ke database Microsoft Access menggunakan penyedia Jet. Perhatikan bahwa kata kunci User ID dan Password bersifat opsional jika database tidak aman (default).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;

Jika database Jet diamankan menggunakan keamanan tingkat pengguna, Anda harus memberikan lokasi file informasi grup kerja (.mdw). File informasi grup kerja digunakan untuk memvalidasi kredensial yang disajikan dalam string koneksi.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;  

Penting

Dimungkinkan untuk menyediakan informasi koneksi untuk OleDbConnection dalam file Universal Data Link (UDL); namun Anda harus menghindari melakukannya. File UDL tidak dienkripsi, dan memaparkan informasi string koneksi dalam teks yang jelas. Karena file UDL adalah sumber daya berbasis file eksternal ke aplikasi Anda, file tersebut tidak dapat diamankan menggunakan .NET Framework. File UDL tidak didukung untuk SqlClient.

Menggunakan DataDirectory untuk Koneksi Ke Akses / Jet

DataDirectory tidak eksklusif untuk SqlClient. Ini juga dapat digunakan dengan penyedia data System.Data.OleDb dan System.Data.Odbc .NET. String sampel OleDbConnection berikut menunjukkan sintaks yang diperlukan untuk menyambungkan ke Northwind.mdb yang terletak di folder app_data aplikasi. Database sistem (System.mdw) juga disimpan di lokasi tersebut.

"Provider=Microsoft.Jet.OLEDB.4.0;  
Data Source=|DataDirectory|\Northwind.mdb;  
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"  

Penting

Menentukan lokasi database sistem dalam string koneksi tidak diperlukan jika database Access/Jet tidak aman. Keamanan mati secara default, dengan semua pengguna terhubung sebagai pengguna Admin bawaan dengan kata sandi kosong. Bahkan ketika keamanan tingkat pengguna diterapkan dengan benar, database Jet tetap rentan terhadap serangan. Oleh karena itu, menyimpan informasi sensitif dalam database Access / Jet tidak disarankan karena kelemahan yang melekat pada skema keamanan berbasis file.

Menyambungkan ke Excel

Penyedia Microsoft Jet digunakan untuk menyambungkan ke buku kerja Excel. Dalam string koneksi berikut, kata kunci Extended Properties mengatur properti yang khusus untuk Excel. "HDR=Yes;" menunjukkan bahwa baris pertama berisi nama kolom, bukan data, dan "IMEX=1;" memberi tahu driver untuk selalu membaca kolom data "intermixed" sebagai teks.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""  

Perhatikan bahwa karakter kutipan ganda yang diperlukan untuk Extended Properties juga harus diapit dalam tanda kutip ganda.

Sintaks String Koneksi Penyedia Bentuk Data

Gunakan kata kunci Provider dan Data Provider saat menggunakan penyedia Bentuk Data Microsoft. Contoh berikut menggunakan penyedia Bentuk untuk menyambungkan ke instans lokal SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"

String Koneksi Odbc

Properti ConnectionString dari OdbcConnection memungkinkan Anda mendapatkan atau menyetel string koneksi untuk sumber data OLE DB. String koneksi Odbc juga didukung oleh OdbcConnectionStringBuilder.

String koneksi berikut ini menggunakan Microsoft Text Driver.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin  

Menggunakan DataDirectory untuk Koneksi ke Visual FoxPro

Sampel string koneksi OdbcConnection berikut menunjukkan penggunaan DataDirectory untuk menyambungkan ke file Microsoft Visual FoxPro.

"Driver={Microsoft Visual FoxPro Driver};  
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"  

String Koneksi Oracle

Properti ConnectionString dari OracleConnection memungkinkan Anda mendapatkan atau menyetel string koneksi untuk sumber data OLE DB. String koneksi Oracle juga didukung oleh OracleConnectionStringBuilder .

Data Source=Oracle9i;User ID=*****;Password=*****;  

Untuk informasi selengkapnya tentang sintaks string koneksi ODBC, lihat ConnectionString.

Lihat juga