Konektivitas basis data telah berkembang menjadi aspek standar pengembangan aplikasi. String koneksi database kini menjadi standar yang harus dimiliki untuk setiap proyek. Saya sering menyalin string koneksi dari aplikasi lain atau melakukan pencarian untuk menemukan sintaks yang saya perlukan. Hal ini terutama berlaku ketika berinteraksi dengan SQL Server, yang memiliki begitu banyak opsi string koneksi. Sekarang mari kita periksa banyak aspek string koneksi.
rangkaian koneksi
Selama pembuatan atau pembuatan instance objek, string koneksi database diteruskan ke objek yang diperlukan melalui properti atau metode. Format string koneksi adalah daftar pasangan parameter kunci/nilai yang dibatasi titik koma. Cantuman A menyertakan contoh dalam C# yang mengilustrasikan cara menyambung ke SQL Server dengan membuat objek SqlConnection (string koneksi sebenarnya ditetapkan melalui properti ConnectionString objek). Termasuk dalam Listing B adalah versi VB.NET.
Daftar A
string cString = "Sumber Data=server;Katalog Awal=db;ID Pengguna=pengujian;Kata Sandi=pengujian;";
SqlConnectionconn = SqlConnection baru();
samb.ConnectionString = cString;
samb.Buka();
Daftar B
Redupkan cString Sebagai String
cString = "Sumber Data=server;Katalog Awal=db;ID Pengguna=pengujian;Kata Sandi=pengujian;"
Redupkan sambungan Sebagai SqlConnection = SqlConnection Baru()
samb.ConnectionString = cString
samb.Buka()
String koneksi menentukan server database dan database, serta nama pengguna dan kata sandi yang diperlukan untuk mengakses database. Meskipun format ini tidak cocok untuk semua interaksi database, format ini memiliki banyak opsi yang tersedia, banyak di antaranya memiliki sinonim.
Bersama dengan elemen Sumber Data, Katalog Awal, ID Pengguna, dan Kata Sandi, tersedia opsi berikut:
Nama Aplikasi: Nama aplikasi. Jika tidak ditentukan, nilainya adalah Penyedia Data .NET SqlClient.
LampirkanDBFilename/properti yang diperluas/Nama File Awal: Nama file utama yang dapat dihubungkan ke database, termasuk nama path lengkap. Nama database harus ditentukan dengan kata kunci database.
Connect Timeout/Connection Timeout: Lama waktu (dalam detik) koneksi ke server menunggu sebelum diakhiri.
Seumur Hidup Koneksi: Ketika koneksi dikembalikan ke kumpulan koneksi, waktu pembuatannya dibandingkan dengan waktu saat ini. Jika rentang waktu ini melebihi masa berlaku koneksi, maka koneksi dibatalkan. Nilai defaultnya adalah 0.
Reset Koneksi: Menunjukkan apakah koneksi direset ketika dihapus dari kumpulan koneksi. Valid palsu menghilangkan kebutuhan akan server tambahan bolak-balik saat mendapatkan koneksi, dan nilai defaultnya adalah benar.
Bahasa Saat Ini: Nama catatan bahasa SQL Server.
Sumber Data/Server/Alamat/Addr/Alamat Jaringan: Nama atau alamat jaringan instans SQL Server.
Enkripsi (enkripsi): Jika nilainya benar, SQL Server akan menggunakan enkripsi SSL untuk semua data yang ditransfer antara klien dan server jika server memiliki sertifikat resmi yang diinstal. Nilai yang diterima adalah benar, salah, ya, dan tidak.
Daftar (pendaftaran): Menunjukkan apakah program kumpulan koneksi akan secara otomatis mendaftarkan koneksi dalam konteks transaksi saat ini dari thread pembuatan.
Database/Katalog Awal: Nama database.
Keamanan Terintegrasi/Koneksi Tepercaya: Menunjukkan apakah autentikasi Windows digunakan untuk menyambung ke database. Nilai defaultnya dapat disetel ke true, false, atau sspi yang setara dengan true.
Ukuran Kumpulan Maksimum (kapasitas maksimum kumpulan koneksi): Jumlah maksimum koneksi yang diizinkan oleh kumpulan koneksi.
Ukuran Kumpulan Min (kapasitas minimum kumpulan koneksi): Jumlah minimum koneksi yang diizinkan oleh kumpulan koneksi, dan nilai defaultnya adalah 0.
Perpustakaan Jaringan/Net: Pustaka jaringan yang digunakan untuk membuat koneksi ke instance SQL Server. Nilai yang didukung meliputi: dbnmpntw (Named Pipes), dbmsrpcn (Multiprotocol/RPC), dbmsvinn (Banyan Vines), dbmsspxn (IPX/SPX), dan dbmssocn (TCP/IP). Pustaka tautan dinamis protokol harus diinstal untuk koneksi yang sesuai; standarnya adalah TCP/IP.
Ukuran Paket: Ukuran paket jaringan yang digunakan untuk berkomunikasi dengan database. Nilai defaultnya adalah 8192.
Password/Pwd: Kata sandi yang sesuai dengan nama akun.
Persist Security Info: Digunakan untuk menentukan apakah informasi keamanan tersedia setelah koneksi dibuat. Jika nilainya benar, data sensitif keamanan seperti nama pengguna dan kata sandi akan tersedia, sedangkan jika nilainya salah, data tersebut tidak tersedia. Menyetel ulang string koneksi akan mengkonfigurasi ulang semua nilai string koneksi, termasuk kata sandi. Nilai defaultnya adalah salah.
Pooling: Menentukan apakah akan menggunakan pooling koneksi. Jika benar, koneksi akan diperoleh dari kumpulan koneksi yang sesuai, atau, jika perlu, koneksi akan dibuat dan ditambahkan ke kumpulan koneksi yang sesuai. Nilai defaultnya adalah benar.
User ID: Nama akun yang digunakan untuk login ke database.
ID Stasiun Kerja: Nama stasiun kerja yang terhubung ke SQL Server. Nilai defaultnya adalah nama komputer lokal.
String koneksi berikut membuat koneksi ke database Northwind di server TestDev1 menggunakan koneksi tepercaya dan kredensial login yang ditentukan (kurang aman dibandingkan membiarkan kata sandi administrator kosong): Server=TestDev1;Database=Northwind;User ID=sa ;
Kata Sandi=;Koneksi_Tepercaya=Benar;
String koneksi berikutnya menggunakan TCIP/IP dan alamat IP tertentu:
Sumber Data=192.162.1.100,1433;Perpustakaan Jaringan=DBMSSOCN;
Katalog Awal=Northwind;ID Pengguna=sa;Kata Sandi=;
Opsi yang digunakan dapat dengan mudah disertakan dalam string koneksi, namun sekali lagi bergantung pada aplikasi Anda dan persyaratannya. Ada baiknya mengetahui apa yang tersedia sehingga Anda dapat menggunakannya dengan tepat.
Menggunakan ADO.NET 2.0
ADO.NET 2.0 memperkenalkan generator string koneksi baru untuk setiap penyedia data .NET Framework. Kata kunci dicantumkan sebagai atribut, memungkinkan sintaksis string koneksi diterapkan sebelum dikirimkan ke sumber data. Ada juga kelas baru yang memudahkan untuk menyimpan dan mengambil string koneksi dalam file konfigurasi, dan mengenkripsinya dengan cara yang terlindungi.