Bağlantı dizesi söz dizimi
Her .NET Framework veri sağlayıcısından DbConnection devralınan bir Connection
nesneye ve sağlayıcıya özgü ConnectionString bir özelliğe sahiptir. Her sağlayıcı için belirli bağlantı dizesi söz dizimi kendi ConnectionString
özelliğinde belgelenmiştir. Aşağıdaki tabloda .NET Framework'e dahil edilen dört veri sağlayıcısı listelenmiştir.
.NET Framework veri sağlayıcısı | Açıklama |
---|---|
System.Data.SqlClient | Microsoft SQL Server için veri erişimi sağlar. bağlantı dizesi söz dizimi hakkında daha fazla bilgi için bkzConnectionString. . |
System.Data.OleDb | OLE DB kullanılarak kullanıma sunulan veri kaynakları için veri erişimi sağlar. bağlantı dizesi söz dizimi hakkında daha fazla bilgi için bkzConnectionString. . |
System.Data.Odbc | ODBC kullanılarak kullanıma sunulan veri kaynakları için veri erişimi sağlar. bağlantı dizesi söz dizimi hakkında daha fazla bilgi için bkzConnectionString. . |
System.Data.OracleClient | Oracle sürüm 8.1.7 veya üzeri için veri erişimi sağlar. bağlantı dizesi söz dizimi hakkında daha fazla bilgi için bkzConnectionString. . |
Bağlantı dizesi oluşturucuları
ADO.NET 2.0, .NET Framework veri sağlayıcıları için aşağıdaki bağlantı dizesi oluşturucularını kullanıma sunms.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
bağlantı dizesi oluşturucuları çalışma zamanında el ile geçerli bağlantı dizesi oluşturmanıza olanak sağlar, bu nedenle kodunuzdaki bağlantı dizesi değerleri el ile birleştirmeniz gerekmez. Daha fazla bilgi için bkz . Bağlantı Dizesi Oluşturucuları.
Windows kimlik doğrulması
Windows Kimlik Doğrulaması (bazen tümleşik güvenlik olarak da adlandırılır) bunu destekleyen veri kaynaklarına bağlanmak için kullanılabilir. bağlantı dizesi kullanılan söz dizimi sağlayıcıya göre değişir. Aşağıdaki tabloda .NET Framework veri sağlayıcılarıyla kullanılan Windows Kimlik Doğrulaması söz dizimi gösterilmektedir.
Provider | Sözdizimi |
---|---|
SqlClient |
Integrated Security=true; -- or -- Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Not
Integrated Security=true
sağlayıcı ile OleDb
kullanıldığında bir özel durum oluşturur.
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.
SqlClient bağlantı dizesi s
bir SqlConnection bağlantı dizesi söz dizimi özelliğinde SqlConnection.ConnectionString belgelenmiştir. özelliğini kullanarak ConnectionString SQL Server veritabanı için bir bağlantı dizesi alabilir veya ayarlayabilirsiniz. SQL Server'ın önceki bir sürümüne bağlanmanız gerekiyorsa OleDbSystem.Data.OleDb () için .NET Framework Veri Sağlayıcısı kullanmanız gerekir. Çoğu bağlantı dizesi anahtar sözcüğü de içindeki özelliklerle SqlConnectionStringBuildereşler.
Önemli
anahtar sözcüğü için Persist Security Info
varsayılan ayardır false
. Bu ayarın true
veya yes
olarak ayarlanması, kullanıcı kimliği ve parola dahil olmak üzere güvenlik duyarlı bilgilerin bağlantı açıldıktan sonra bağlantıdan alınmasına izin verir. Güvenilmeyen bir kaynağın hassas bağlantı dizesi bilgilerine erişmediğinden emin olmak için olarak ayarlayın Persist Security Info
false
.
SqlClient ile Windows kimlik doğrulaması
Aşağıdaki söz dizimi formlarının her biri, yerel sunucudaki AdventureWorks veritabanına bağlanmak için Windows Kimlik Doğrulaması'nı kullanır.
"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)"
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.
SqlClient ile SQL Server kimlik doğrulaması
SQL Server'a (şirket içi) bağlanmak için Windows Kimlik Doğrulaması tercih edilir. Ancak, SQL Server Kimlik Doğrulaması gerekiyorsa, bir kullanıcı adı ve parola belirtmek için aşağıdaki söz dizimini kullanın. Bu örnekte, yıldız işareti geçerli bir kullanıcı adı ve parolayı temsil etmek için kullanılır.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
Azure SQL Veritabanı veya Azure SQL Veri Ambarı'na bağlandığınızda ve biçiminde user@servername
bir oturum açma sağladığınızda, oturum açmadaki değerin servername
için Server=
sağlanan değerle eşleştiğinden emin olun.
Not
Windows kimlik doğrulaması, SQL Server oturum açma işlemlerinden önceliklidir. Hem kullanıcı adı hem de Integrated Security=true
parola belirtirseniz, kullanıcı adı ve parola yoksayılır ve Windows kimlik doğrulaması kullanılır.
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.
SQL Server'ın adlandırılmış örneğine bağlanma
SQL Server'ın adlandırılmış bir örneğine bağlanmak için sunucu adı\örnek adı söz dizimini kullanın.
"Data Source=MySqlServer\\MSSQL1;"
ayrıca bir bağlantı dizesi oluştururken öğesinin özelliğini SqlConnectionStringBuilder
örnek adına ayarlayabilirsinizDataSource. Bir DataSource SqlConnection nesnenin özelliği salt okunurdur.
Sistem sürümü değişikliklerini yazın
içindeki Type System Version
SqlConnection.ConnectionString anahtar sözcüğü, SQL Server türlerinin istemci tarafı gösterimini belirtir. Anahtar sözcük hakkında Type System Version
daha fazla bilgi için bkzSqlConnection.ConnectionString.
SQL Server Express kullanıcı örneklerine bağlanma ve ekleme
Kullanıcı örnekleri SQL Server Express'teki bir özelliktir. En düşük ayrıcalıklı yerel Windows hesabı üzerinde çalışan bir kullanıcının yönetim ayrıcalıklarına gerek kalmadan SQL Server veritabanı eklemesine ve çalıştırmasına izin verir. Bir kullanıcı örneği, hizmet olarak değil kullanıcının Windows kimlik bilgileriyle yürütülür.
Kullanıcı örnekleriyle çalışma hakkında daha fazla bilgi için bkz . SQL Server Express Kullanıcı Örnekleri.
TrustServerCertificate kullanma
anahtar TrustServerCertificate
sözcüğü yalnızca geçerli bir sertifikayla bir SQL Server örneğine bağlanırken geçerlidir. TrustServerCertificate
olarak ayarlandığında true
aktarım katmanı, kanalı şifrelemek için SSL kullanır ve güveni doğrulamak için sertifika zincirini yürümeyi atlar.
"TrustServerCertificate=true;"
Not
olarak ayarlanırsa TrustServerCertificate
true
ve şifreleme açıksa, bağlantı dizesi olarak ayarlansa Encrypt
false
bile sunucuda belirtilen şifreleme düzeyi kullanılır. Aksi takdirde bağlantı başarısız olur.
Şifrelemeyi etkinleştirme
Sunucuda bir sertifika sağlanmadığında şifrelemeyi etkinleştirmek için Protokol Şifrelemesini Zorla ve Sunucu Sertifikasına Güven seçeneklerinin SQL Server Yapılandırma Yöneticisi olarak ayarlanması gerekir. Bu durumda, sunucuda doğrulanabilir bir sertifika sağlanmadıysa şifreleme doğrulama olmadan otomatik olarak imzalanan bir sunucu sertifikası kullanır.
Uygulama ayarları SQL Server'da yapılandırılan güvenlik düzeyini azaltamaz, ancak isteğe bağlı olarak güçlendirebilir. Bir uygulama, ve anahtar sözcüklerini true
olarak ayarlayarak TrustServerCertificate
şifreleme isteğinde bulunabilir ve istemci için bir sunucu sertifikası sağlanmadığında ve Protokol Şifrelemesini Zorla yapılandırılmadığında bile şifrelemenin gerçekleştirildiğini garanti edebilir.Encrypt
Ancak, istemci yapılandırmasında etkinleştirilmemişse TrustServerCertificate
, sağlanan bir sunucu sertifikası hala gereklidir.
Aşağıdaki tabloda tüm durumlar açıklanmaktadır.
Protokol Şifrelemesi istemci ayarını zorla | Sunucu Sertifikası istemci ayarına güven | Veri bağlantı dizesi/özniteliği için Şifreleme/Kullanma | Sunucu Sertifikası bağlantı dizesi/özniteliğine güven | Sonuç |
---|---|---|---|---|
Hayır | YOK | Hayır (varsayılan) | Yoksayıldı | Şifreleme gerçekleşmez. |
Hayır | YOK | Evet | Hayır (varsayılan) | Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir, aksi takdirde bağlantı girişimi başarısız olur. |
Hayır | YOK | Yes | Yes | Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir. |
Yes | Hayır | Yoksayıldı | Yoksayıldı | Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir; aksi takdirde, bağlantı girişimi başarısız olur. |
Yes | Yes | Hayır (varsayılan) | Yoksayıldı | Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir. |
Yes | Evet | Yes | Hayır (varsayılan) | Şifreleme yalnızca doğrulanabilir bir sunucu sertifikası varsa gerçekleşir; aksi takdirde, bağlantı girişimi başarısız olur. |
Yes | Evet | Evet | Yes | Şifreleme her zaman gerçekleşir, ancak otomatik olarak imzalanan bir sunucu sertifikası kullanabilir. |
Daha fazla bilgi için bkz . Doğrulama Olmadan Şifreleme Kullanma.
OleDb bağlantı dizesi s
ConnectionString özelliğiOleDbConnection, Microsoft Access gibi bir OLE DB veri kaynağı için bağlantı dizesi almanıza veya ayarlamanıza olanak tanır. Ayrıca sınıfını kullanarak OleDbConnectionStringBuilder çalışma zamanında bir OleDb
bağlantı dizesi oluşturabilirsiniz.
OleDb bağlantı dizesi söz dizimi
bağlantı dizesi için bir OleDbConnection sağlayıcı adı belirtmeniz gerekir. Aşağıdaki bağlantı dizesi Jet sağlayıcısını kullanarak bir Microsoft Access veritabanına bağlanır. User ID
Veritabanı güvenli değilse ve Password
anahtar sözcüklerinin isteğe bağlı olduğunu unutmayın (varsayılan).
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Jet veritabanının güvenliği kullanıcı düzeyinde güvenlik kullanılarak sağlanıyorsa, çalışma grubu bilgi dosyasının (.mdw) konumunu sağlamanız gerekir. Çalışma grubu bilgi dosyası, bağlantı dizesi sunulan kimlik bilgilerini doğrulamak için kullanılır.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Önemli
Evrensel Veri Bağlantısı (UDL) dosyasında OleDbConnection için bağlantı bilgileri sağlamak mümkündür; ancak bunu yapmaktan kaçınmanız gerekir. UDL dosyaları şifrelenmez ve bağlantı dizesi bilgileri düz metinde kullanıma sunar. UDL dosyası uygulamanızın dış dosya tabanlı bir kaynağı olduğundan, .NET Framework kullanılarak güvenli hale getirilemez. UDL dosyaları SqlClient için desteklenmez.
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.
Access/Jet'e bağlanmak için DataDirectory kullanma
DataDirectory
özel değildir SqlClient
. Ve .NET veri sağlayıcılarıyla System.Data.OleDb System.Data.Odbc da kullanılabilir. Aşağıdaki örnek OleDbConnection dize, uygulamanın app_data klasöründe bulunan Northwind.mdb bağlanmak için gereken söz dizimini gösterir. Sistem veritabanı (System.mdw) de bu konumda depolanır.
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Önemli
Access/Jet veritabanı güvenli değilse bağlantı dizesi sistem veritabanının konumunu belirtmek gerekli değildir. Güvenlik varsayılan olarak kapalıdır ve tüm kullanıcılar boş bir parolayla yerleşik Yönetici kullanıcı olarak bağlanır. Kullanıcı düzeyi güvenlik doğru şekilde uygulandığında bile Jet veritabanı saldırılara karşı savunmasız kalır. Bu nedenle, dosya tabanlı güvenlik şemasının doğası gereği zayıflığı nedeniyle hassas bilgileri Access/Jet veritabanında depolamak önerilmez.
Excel'e bağlanma
Microsoft Jet sağlayıcısı bir Excel çalışma kitabına bağlanmak için kullanılır. Aşağıdaki bağlantı dizesi anahtar sözcüğü, Excel'e Extended Properties
özgü özellikleri ayarlar. "HDR=Evet;", ilk satırın veri değil sütun adları içerdiğini belirtir ve "IMEX=1;" sürücüye her zaman "karma" veri sütunlarını metin olarak okumasını söyler.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
için gereken çift tırnak karakterinin Extended Properties
de çift tırnak içine alınması gerektiğini unutmayın.
Veri Şekli sağlayıcısı bağlantı dizesi söz dizimi
Microsoft Veri Şekli sağlayıcısını Provider
Data Provider
kullanırken hem hem de anahtar sözcüklerini kullanın. Aşağıdaki örnek, SQL Server'ın yerel bir örneğine bağlanmak için Şekil sağlayıcısını kullanır.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.
Odbc bağlantı dizesi
ConnectionString özelliği, OdbcConnection OLE DB veri kaynağı için bir bağlantı dizesi almanıza veya ayarlamanıza olanak tanır. Odbc bağlantı dizesi de tarafından OdbcConnectionStringBuilderdesteklenir.
Aşağıdaki bağlantı dizesi Microsoft Metin Sürücüsü kullanılır.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Oracle bağlantı dizesi s
ConnectionString özelliği, OracleConnection OLE DB veri kaynağı için bir bağlantı dizesi almanıza veya ayarlamanıza olanak tanır. Oracle bağlantı dizesi s, tarafından OracleConnectionStringBuilder da desteklenir.
Data Source=Oracle9i;User ID=*****;Password=*****;
ODBC bağlantı dizesi söz dizimi hakkında daha fazla bilgi için bkzConnectionString. .
Önemli
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.