Bagikan melalui


Sintaks string koneksi

Berlaku untuk: .NET Framework .NET .NET Standard

Mengunduh ADO.NET

Microsoft.Data.SqlClient memiliki Connection objek yang mewarisi dari DbConnection dan properti khusus ConnectionString penyedia. Sintaks string koneksi khusus untuk penyedia SqlClient didokumenkan dalam propertinyaConnectionString. Untuk informasi selengkapnya tentang sintaks string koneksi, lihat ConnectionString.

Penyusun string koneksi

Penyedia Data Microsoft SqlClient untuk SQL Server memperkenalkan penyusun string koneksi berikut.

Penyusun string koneksi memungkinkan Anda membuat string koneksi yang valid secara sintetis pada waktu proses, sehingga 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. Tabel berikut ini memperlihatkan sintaks Autentikasi Windows yang digunakan dengan Penyedia Data Microsoft SqlClient untuk SQL Server.

Penyedia Sintaks
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;

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. 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;Encrypt=True;"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local);Encrypt=True;"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local);Encrypt=True;"  

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;Encrypt=True;"  

Saat Anda menyambungkan ke Azure SQL Database atau ke Azure Synapse Analytics dan memberikan nama pengguna dalam format user@servername, pastikan bahwa servername nilai dalam nama pengguna cocok dengan nilai yang disediakan 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. Untuk informasi selengkapnya tentang Type System Version kata kunci, lihat SqlConnection.ConnectionString.

Menyambungkan 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 TrustServerCertificate kunci digunakan saat menyambungkan ke instans SQL Server. Ketika TrustServerCertificate diatur ke true, lapisan transportasi menggunakan TLS/SSL untuk mengenkripsi saluran dan melewati rantai sertifikat untuk memvalidasi kepercayaan.

  • Dalam versi sebelum Microsoft.Data.SqlClient 2.0, pengaturan ini diabaikan ketika Encrypt diatur ke False dan sertifikat server tidak divalidasi.
  • Mulai dari Microsoft.Data.SqlClient versi 2.0, bahkan jika Encrypt diatur False, pengaturan mengontrol apakah validasi sertifikat dilakukan saat server memaksa enkripsi.
  • Mulai dari Microsoft.Data.SqlClient versi 5.0, pengaturan ini diabaikan saat Encrypt diatur ke Strict. Sertifikat server selalu divalidasi dalam Strict mode.

Untuk informasi selengkapnya, lihat Enkripsi dan validasi sertifikat.

"TrustServerCertificate=true;"

HostNameInCertificate

Mulai dari Microsoft.Data.SqlClient versi 5.0, HostNameInCertificate adalah opsi koneksi baru. Validasi sertifikat server memastikan bahwa Nama Umum (CN) atau Nama Alternatif Subjek (SAN) dalam sertifikat cocok dengan nama server yang tersambung. Dalam beberapa kasus, seperti alias DNS, nama server mungkin tidak cocok dengan CN atau SAN. Nilai HostNameInCertificate dapat digunakan untuk menentukan CN atau SAN yang diharapkan yang berbeda dalam sertifikat server.

"HostNameInCertificate=myserver.example.com"

ServerCertificate

Mulai dari Microsoft.Data.SqlClient versi 5.1, ServerCertificate adalah opsi koneksi baru. Nilai ServerCertificate default pengaturan koneksi adalah string kosong. Ketika Encrypt diatur ke Mandatory atau Strict, ServerCertificate dapat digunakan untuk menentukan jalur pada sistem file ke file sertifikat yang cocok dengan sertifikat TLS server. Agar sertifikat valid, sertifikat yang ditentukan harus sama persis. Format sertifikat yang diterima adalah PEM, DER, dan CER. Berikut contohnya:

"Data Source=...;Encrypt=Strict;ServerCertificate=C:\certificates\server.cer"

Megaktifkan enkripsi

Untuk mengaktifkan enkripsi saat sertifikat belum disediakan di server, properti koneksi Sertifikat Server Kepercayaan harus diatur ke True. Dalam hal ini, enkripsi menggunakan sertifikat server yang ditandatangani sendiri tanpa validasi karena tidak ada sertifikat yang dapat diverifikasi yang disediakan di server.

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

Tabel berikut menjelaskan semua kasus.

Mengenkripsi string koneksi/atribut String/atribut koneksi Sertifikat Server Kepercayaan Hasil
Tidak/Opsional Diabaikan Tidak ada enkripsi yang terjadi.
Ya/Wajib No Enkripsi hanya terjadi jika ada sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.
Ya/Wajib Ya Enkripsi selalu terjadi, tetapi dapat menggunakan sertifikat server yang ditandatangani sendiri.
Ketat 1 Diabaikan Enkripsi selalu terjadi dan harus menggunakan sertifikat server yang dapat diverifikasi, jika tidak, upaya koneksi gagal.

1 Enkripsi ketat hanya tersedia dimulai dengan Microsoft.Data.SqlClient versi 5.0.

Untuk informasi selengkapnya, termasuk perilaku di versi sebelumnya, lihat Enkripsi dan validasi sertifikat.

Lihat juga

String koneksi
Enkripsi dan validasi sertifikat
Menyambungkan ke sumber data
Microsoft ADO.NET untuk SQL Server