Bağlantı dizisi söz dizimi

Her ADO.NET veri sağlayıcısının, Connection sınıfından türeyen bir DbConnection nesnesi ve ayrıca sağlayıcıya özgü bir ConnectionString özelliği vardır. Her sağlayıcı için belirli bağlantı dizesi söz dizimi kendi ConnectionString özelliğinde belgelenmiştir. Aşağıdaki tabloda Microsoft.Data.SqlClient ve .NET Framework'e dahil edilen üç sağlayıcı listelenmektedir.

Veri sağlayıcı Açıklama
Microsoft.Data.SqlClient Microsoft SQL Server için Microsoft.Data.SqlClient NuGet paketi aracılığıyla 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ı

Veri sağlayıcınız için bağlantı dizesi oluşturucusunu kullanın.

Bağlantı dizesi oluşturucuları çalışma zamanında sağlam olarak geçerli bağlantı dizeleri oluşturmanıza olanak tanır, bu nedenle kodunuzda bağlantı dizesi değerlerini 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, bu veri sağlayıcılarıyla kullanılan Windows Kimlik Doğrulaması söz dizimi gösterilmektedir.

Sağlayıcı 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ı dizeleri

Bir SqlConnection bağlantı dizesinin söz dizimi, SqlConnection.ConnectionString özelliğinde belgelenmiştir. özelliğini kullanarak ConnectionString SQL Server veritabanı için bir bağlantı dizesi alabilir veya ayarlayabilirsiniz. Çoğu bağlantı dizesi anahtar sözcüğü, SqlConnectionStringBuilder içindeki özelliklerle de eş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 Persist Security Info öğesini false olarak tutun.

SqlClient ile Windows kimlik doğrulaması

Aşağıdaki söz dizimi formlarının her biri, belirtilen 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=<server>;Encrypt=true"
"Persist Security Info=False;Integrated Security=SSPI;database=AdventureWorks;server=<server>;Encrypt=true"
"Persist Security Info=False;Trusted_Connection=True;database=AdventureWorks;server=<server>;Encrypt=true"

Ö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@servernamebir 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 Integrated Security=true hem de kullanıcı adı ve 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=<server>\\<instance>;Encrypt=true;"

ayrıca bir bağlantı dizesi oluştururken öğesinin özelliğini DataSource örnek adına ayarlayabilirsinizSqlConnectionStringBuilder. DataSource bir SqlConnection nesnesinin özelliği salt okunurdur.

Sistem sürümü değişikliklerini yazın

içindeki Type System VersionSqlConnection.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 bkz SqlConnection.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

Encrypt=true ile TrustServerCertificate=true bağlantıyı şifreler ancak sunucu sertifikası doğrulamasını atlar. Üretim bağlantıları için TrustServerCertificate=false seçeneğini koruyun ve doğrulanabilir bir sunucu sertifikası yapılandırın.

"TrustServerCertificate=true;"

Caution

Sertifika doğrulamayı atlarsanız, istemci sunucunun kimliğini doğrulayamaz. Encrypt=Strict ile Microsoft.Data.SqlClient her zaman sunucu sertifikasını doğrular ve TrustServerCertificate ifadesini yoksayar.

Şifrelemeyi etkinleştirme

Microsoft.Data.SqlClient için varsayılan değerler Encrypt=Mandatory, TrustServerCertificate=false ve Encrypt=true'dir. İstemci şifreleme gerektirir ve sunucu sertifikasını doğrular. Sertifika güvenilir değilse veya sunucu adıyla eşleşmiyorsa bağlantı başarısız olur.

Uzak bağlantılar için Encrypt=true belirtin ve istemcinin güvendiği bir sunucu sertifikası yapılandırın. System.Data.SqlClient'dan geçiş yaparsanız, şifreleme varsayılanlarının Microsoft.Data.SqlClient için geçerli olduğunu varsaymayın. Daha fazla bilgi için bkz. Microsoft.Data.SqlClient Şifreleme ve sertifika doğrulaması.

OleDb bağlantı dizeleri

ConnectionString özelliğiOleDbConnection, Microsoft Access gibi bir OLE DB veri kaynağı için bağlantı dizesi almanıza veya ayarlamanıza olanak tanır. Çalışma zamanında OleDb sınıfını kullanarak bir OleDbConnectionStringBuilder 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 bir OleDbConnection için bağlantı bilgilerini sağlamak mümkündür; ancak bunu yapmaktan kaçınmalısınız. 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 sadece SqlClient için değildir. ".NET veri sağlayıcıları System.Data.OleDb ve System.Data.Odbc ile de 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ı kullanırken Provider ve Veri Sağlayıcısı 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ı dizeleri de OdbcConnectionStringBuilder tarafından desteklenir.

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ı dizeleri

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ı dizeleri, OracleConnectionStringBuilder tarafından 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.

Ayrıca bkz.