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łączenia
ADO.NET 2.0 wprowadzono następujące konstruktory parametry połączenia dla dostawców danych programu .NET Framework.
- SqlConnectionStringBuilder
- OleDbConnectionStringBuilder
- OdbcConnectionStringBuilder
- OracleConnectionStringBuilder
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 Konstruktory parametrów połączenia.
Uwierzytelnianie systemu Windows
Uwierzytelnianie systemu Windows (czasami nazywane zintegrowanymi zabezpieczeniami) może służyć do nawiązywania 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
.
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.
Parametry połączenia 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)"
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.
Uwierzytelnianie programu SQL Server za pomocą programu SqlClient
Uwierzytelnianie systemu Windows jest preferowane w przypadku nawiązywania połączenia z programem SQL Server (lokalnie). 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 Integrated Security=true
nazwę użytkownika, jak i hasło, nazwa użytkownika i hasło są ignorowane, a uwierzytelnianie systemu Windows jest używane.
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.
Nawiązywanie połączenia z nazwanym wystąpieniem 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ść DataSource SqlConnection obiektu jest tylko do odczytu.
Zmiany wersji systemu typu
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
.
Łą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 certyfikatu 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).
Parametry połączenia 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 parametry połączenia 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 obiektu OleDbConnection w pliku UDL (Universal Data Link), 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 w aplikacji, nie można go zabezpieczyć przy użyciu programu .NET Framework. Pliki UDL nie są obsługiwane w przypadku programu SqlClient.
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.
Nawiązywanie połączenia z usługą Access/Jet przy użyciu usługi DataDirectory
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 wbudowanego użytkownika administratora 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.
Łączenie z 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 dostawcy kształtów danych parametry połączenia
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;"
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.
Odbc parametry połączenia s
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
Parametry połączenia 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.
Ważne
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Jeśli łączysz się z usługą Azure SQL, tożsamości zarządzane dla zasobów platformy Azure to zalecana metoda uwierzytelniania.