Składnia parametrów połączenia
Każdy dostawca danych programu .NET Framework ma Connection
obiekt, który dziedziczy z DbConnection właściwości specyficznej dla ConnectionString dostawcy. Określona składnia parametry połączenia dla każdego dostawcy jest udokumentowana we właściwościConnectionString
. W poniższej tabeli wymieniono czterech dostawców danych uwzględnionych w programie .NET Framework.
Dostawca danych programu .NET Framework | opis |
---|---|
System.Data.SqlClient | Zapewnia dostęp do danych dla programu Microsoft SQL Server. Aby uzyskać więcej informacji na temat składni parametry połączenia, zobacz ConnectionString. |
System.Data.OleDb | Zapewnia dostęp do danych dla źródeł danych uwidocznionych przy użyciu ole DB. Aby uzyskać więcej informacji na temat składni parametry połączenia, zobacz ConnectionString. |
System.Data.Odbc | Zapewnia dostęp do danych dla źródeł danych uwidocznionych przy użyciu odBC. Aby uzyskać więcej informacji na temat składni parametry połączenia, zobacz ConnectionString. |
System.Data.OracleClient | Zapewnia dostęp do danych dla programu Oracle w wersji 8.1.7 lub nowszej. Aby uzyskać więcej informacji na temat składni parametry połączenia, zobacz ConnectionString. |
Konstruktorzy parametrów połączeń
ADO.NET 2.0 wprowadzono następujące konstruktory parametry połączenia dla dostawców danych programu .NET Framework.
Konstruktorzy parametry połączenia umożliwiają konstruowanie prawidłowych składniowo parametry połączenia w czasie wykonywania, więc nie trzeba ręcznie łączyć wartości parametry połączenia w kodzie. Aby uzyskać więcej informacji, zobacz Połączenie ion String Builders.
Uwierzytelnianie systemu Windows
Zalecamy używanie uwierzytelniania systemu Windows (czasami nazywanego zintegrowanymi zabezpieczeniami) w celu nawiązania połączenia ze źródłami danych, które go obsługują. Składnia zastosowana w parametry połączenia różni się w zależności od dostawcy. W poniższej tabeli przedstawiono składnię uwierzytelniania systemu Windows używaną z dostawcami danych programu .NET Framework.
Dostawca | Składnia |
---|---|
SqlClient |
Integrated Security=true; -- or -- Integrated Security=SSPI; |
OleDb |
Integrated Security=SSPI; |
Odbc |
Trusted_Connection=yes; |
OracleClient |
Integrated Security=yes; |
Uwaga
Integrated Security=true
zgłasza wyjątek w przypadku użycia z dostawcą OleDb
.
Ciągi Połączenie ion programu SqlClient
Składnia SqlConnection parametry połączenia jest udokumentowana we SqlConnection.ConnectionString właściwości . Za pomocą ConnectionString właściwości można pobrać lub ustawić parametry połączenia dla bazy danych programu SQL Server. Jeśli musisz nawiązać połączenie ze starszą wersją programu SQL Server, musisz użyć programu .NET Framework Dostawca danych dla bazy danych OleDb (System.Data.OleDb). Większość słów kluczowych parametry połączenia jest również mapowania na właściwości w obiekcie SqlConnectionStringBuilder.
Ważne
Ustawieniem domyślnym słowa kluczowego Persist Security Info
jest false
. Ustawienie go na true
lub yes
umożliwia uzyskanie informacji poufnych zabezpieczeń, w tym identyfikatora użytkownika i hasła, z połączenia po otwarciu połączenia. Ustaw Persist Security Info
wartość na wartość false
, aby upewnić się, że niezaufane źródło nie ma dostępu do poufnych parametry połączenia informacji.
Uwierzytelnianie systemu Windows za pomocą klienta SqlClient
Każda z poniższych form składni używa uwierzytelniania systemu Windows do nawiązywania połączenia z bazą danych AdventureWorks na serwerze lokalnym.
"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)"
Uwierzytelnianie programu SQL Server za pomocą programu SqlClient
Uwierzytelnianie systemu Windows jest preferowane do nawiązywania połączenia z programem SQL Server. Jeśli jednak wymagane jest uwierzytelnianie programu SQL Server, użyj następującej składni, aby określić nazwę użytkownika i hasło. W tym przykładzie gwiazdki są używane do reprezentowania prawidłowej nazwy użytkownika i hasła.
"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"
Podczas nawiązywania połączenia z usługą Azure SQL Database lub z usługą Azure SQL Data Warehouse i podania nazwy logowania w formacie user@servername
upewnij się, że servername
wartość w logowaniu jest zgodna z wartością podaną dla Server=
.
Uwaga
Uwierzytelnianie systemu Windows ma pierwszeństwo przed identyfikatorami logowania programu SQL Server. Jeśli określisz zarówno zintegrowane zabezpieczenia=true, jak i nazwę użytkownika i hasło, nazwa użytkownika i hasło zostaną zignorowane, a zostanie użyte uwierzytelnianie systemu Windows.
Połączenie do nazwanego wystąpienia programu SQL Server
Aby nawiązać połączenie z nazwanym wystąpieniem programu SQL Server, użyj składni nazwy serwera\nazwy wystąpienia.
"Data Source=MySqlServer\\MSSQL1;"
Właściwość obiektu SqlConnectionStringBuilder
można również ustawić DataSource na nazwę wystąpienia podczas tworzenia parametry połączenia. Właściwość DataSourceSqlConnection obiektu jest tylko do odczytu.
Zmiany wersji systemu typów
Słowo Type System Version
kluczowe w a SqlConnection.ConnectionString określa reprezentację po stronie klienta typów programu SQL Server. Zobacz SqlConnection.ConnectionString , aby uzyskać więcej informacji na temat słowa kluczowego Type System Version
.
Połączenie i dołączanie do wystąpień użytkowników programu SQL Server Express
Wystąpienia użytkowników to funkcja w programie SQL Server Express. Umożliwiają one użytkownikowi działającemu na najmniej uprzywilejowanym lokalnym koncie systemu Windows dołączanie i uruchamianie bazy danych programu SQL Server bez konieczności posiadania uprawnień administracyjnych. Wystąpienie użytkownika jest wykonywane przy użyciu poświadczeń systemu Windows użytkownika, a nie jako usługi.
Aby uzyskać więcej informacji na temat pracy z wystąpieniami użytkowników, zobacz SQL Server Express User Instances (Wystąpienia użytkowników programu SQL Server Express).
Korzystanie z elementu TrustServerCertificate
Słowo TrustServerCertificate
kluczowe jest prawidłowe tylko podczas nawiązywania połączenia z wystąpieniem programu SQL Server z prawidłowym certyfikatem. Gdy TrustServerCertificate
jest ustawiona wartość true
, warstwa transportu będzie używać protokołu SSL do szyfrowania kanału i pomijania chodzenia łańcuchem certyfikatów w celu zweryfikowania zaufania.
"TrustServerCertificate=true;"
Uwaga
Jeśli TrustServerCertificate
jest ustawiona wartość true
i szyfrowanie jest włączone, poziom szyfrowania określony na serwerze będzie używany, nawet jeśli Encrypt
jest ustawiona na false
wartość w parametry połączenia. Połączenie zakończy się niepowodzeniem.
Włączanie szyfrowania
Aby włączyć szyfrowanie, gdy na serwerze nie zainicjowano obsługi administracyjnej certyfikatu, należy ustawić opcje Wymuszanie szyfrowania protokołu i certyfikatu serwera zaufania w Menedżerze konfiguracji programu SQL Server. W takim przypadku szyfrowanie będzie używać certyfikatu serwera z podpisem własnym bez sprawdzania poprawności, jeśli na serwerze nie zainicjowano obsługi administracyjnej certyfikatu weryfikowalnego.
Ustawienia aplikacji nie mogą zmniejszyć poziomu zabezpieczeń skonfigurowanych w programie SQL Server, ale opcjonalnie można je wzmocnić. Aplikacja może żądać szyfrowania, ustawiając TrustServerCertificate
słowa kluczowe i Encrypt
na true
wartość , gwarantując, że szyfrowanie odbywa się nawet wtedy, gdy certyfikat serwera nie został aprowizowany, a szyfrowanie wymuszane nie zostało skonfigurowane dla klienta. Jeśli TrustServerCertificate
jednak nie jest włączona w konfiguracji klienta, nadal wymagany jest aprowizowany certyfikat serwera.
W poniższej tabeli opisano wszystkie przypadki.
Wymuszanie ustawienia klienta szyfrowania protokołu | Ustawienie klienta certyfikatu serwera zaufania | Szyfrowanie/używanie szyfrowania dla parametry połączenia danych/atrybutu | Certyfikat serwera zaufania parametry połączenia/atrybut | Result |
---|---|---|---|---|
Nie. | Nie dotyczy | Nie (ustawienie domyślne) | Zignorowane | Nie ma szyfrowania. |
Nie. | Nie dotyczy | Tak | Nie (ustawienie domyślne) | Szyfrowanie występuje tylko wtedy, gdy istnieje weryfikowalny certyfikat serwera, w przeciwnym razie próba połączenia zakończy się niepowodzeniem. |
Nie. | Nie dotyczy | Tak | Tak | Szyfrowanie zawsze występuje, ale może używać certyfikatu serwera z podpisem własnym. |
Tak | Nie. | Zignorowane | Zignorowane | Szyfrowanie odbywa się tylko wtedy, gdy istnieje weryfikowalny certyfikat serwera; w przeciwnym razie próba połączenia kończy się niepowodzeniem. |
Tak | Tak | Nie (ustawienie domyślne) | Zignorowane | Szyfrowanie zawsze występuje, ale może używać certyfikatu serwera z podpisem własnym. |
Tak | Tak | Tak | Nie (ustawienie domyślne) | Szyfrowanie odbywa się tylko wtedy, gdy istnieje weryfikowalny certyfikat serwera; w przeciwnym razie próba połączenia kończy się niepowodzeniem. |
Tak | Tak | Tak | Tak | Szyfrowanie zawsze występuje, ale może używać certyfikatu serwera z podpisem własnym. |
Aby uzyskać więcej informacji, zobacz Using Encryption Without Validation (Używanie szyfrowania bez walidacji).
Ciągi Połączenie ion oledb
Właściwość ConnectionString obiektu OleDbConnection umożliwia uzyskanie lub ustawienie parametry połączenia dla źródła danych OLE DB, takiego jak Microsoft Access. Możesz również utworzyć OleDb
parametry połączenia w czasie wykonywania przy użyciu OleDbConnectionStringBuilder klasy .
Składnia ciągu Połączenie ion OleDb
Musisz określić nazwę dostawcy dla OleDbConnection parametry połączenia. Poniższy parametry połączenia nawiązuje połączenie z bazą danych programu Microsoft Access przy użyciu dostawcy Jet. Pamiętaj, że User ID
słowa kluczowe i Password
są opcjonalne, jeśli baza danych jest niezabezpieczona (wartość domyślna).
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;
Jeśli baza danych Jet jest zabezpieczona przy użyciu zabezpieczeń na poziomie użytkownika, należy podać lokalizację pliku informacyjnego grupy roboczej (mdw). Plik informacyjny grupy roboczej służy do weryfikowania poświadczeń przedstawionych w parametry połączenia.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
Ważne
Istnieje możliwość podania informacji o połączeniu dla bazy danych OleDb Połączenie ion w pliku universal Data Link (UDL), jednak należy tego unikać. Pliki UDL nie są szyfrowane i uwidaczniają parametry połączenia informacje w postaci zwykłego tekstu. Ponieważ plik UDL jest zewnętrznym zasobem opartym na plikach do aplikacji, nie można go zabezpieczyć przy użyciu programu .NET Framework. Pliki UDL nie są obsługiwane w przypadku programu SqlClient.
Używanie elementu DataDirectory do Połączenie do uzyskiwania dostępu/jet
DataDirectory
nie jest wyłączny dla SqlClient
. Można go również używać z dostawcami System.Data.OleDb danych platformy i System.Data.Odbc .NET. Poniższy przykładowy OleDbConnection ciąg przedstawia składnię wymaganą do nawiązania połączenia z Northwind.mdb znajdującym się w folderze app_data aplikacji. Systemowa baza danych (System.mdw) jest również przechowywana w tej lokalizacji.
"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"
Ważne
Określenie lokalizacji systemowej bazy danych w parametry połączenia nie jest wymagane, jeśli baza danych Access/Jet jest niezabezpieczona. Zabezpieczenia są domyślnie wyłączone, a wszyscy użytkownicy łączą się jako wbudowany użytkownik Administracja z pustym hasłem. Nawet jeśli zabezpieczenia na poziomie użytkownika są prawidłowo implementowane, baza danych Jet pozostaje podatna na ataki. W związku z tym przechowywanie poufnych informacji w bazie danych programu Access/Jet nie jest zalecane ze względu na nieodłączną słabość schematu zabezpieczeń opartego na plikach.
Połączenie do programu Excel
Dostawca microsoft Jet służy do nawiązywania połączenia ze skoroszytem programu Excel. W poniższym parametry połączenia słowo Extended Properties
kluczowe ustawia właściwości specyficzne dla programu Excel. Wyrażenie "HDR=Tak;" wskazuje, że pierwszy wiersz zawiera nazwy kolumn, a nie dane i "IMEX=1;" informuje sterownik, aby zawsze odczytywał "mieszane" kolumny danych jako tekst.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
Należy pamiętać, że podwójny cudzysłów wymagany dla znaku Extended Properties
musi być również ujęta w podwójny cudzysłów.
Składnia ciągu Połączenie ion dostawcy kształtów danych
Użyj słów Provider
kluczowych i Data Provider
podczas korzystania z dostawcy kształtów danych firmy Microsoft. W poniższym przykładzie użyto dostawcy kształtów do nawiązania połączenia z lokalnym wystąpieniem programu SQL Server.
"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"
Ciągi Połączenie ion odbc
Właściwość ConnectionString obiektu OdbcConnection umożliwia pobranie lub ustawienie parametry połączenia dla źródła danych OLE DB. Parametry połączenia odbc są również obsługiwane przez program OdbcConnectionStringBuilder.
W poniższych parametry połączenia użyto sterownika tekstu firmy Microsoft.
Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin
Używanie elementu DataDirectory do Połączenie do programu Visual FoxPro
W poniższym OdbcConnection przykładzie parametry połączenia pokazano, jak używać polecenia DataDirectory
w celu nawiązania połączenia z plikiem Microsoft Visual FoxPro.
"Driver={Microsoft Visual FoxPro Driver};
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"
Ciągi Połączenie ion Oracle
Właściwość ConnectionString obiektu OracleConnection umożliwia pobranie lub ustawienie parametry połączenia dla źródła danych OLE DB. Parametry połączenia Oracle są również obsługiwane przez program OracleConnectionStringBuilder .
Data Source=Oracle9i;User ID=*****;Password=*****;
Aby uzyskać więcej informacji na temat składni parametry połączenia ODBC, zobacz ConnectionString.