Jestem ciekaw, jaka jest różnica między tokenem „Trusted_Connection” i „Integrated Security” w parametrach połączenia SQL Server (uważam, że inne bazy danych / sterowniki ich nie obsługują). Rozumiem, że są równoważni.
Jestem ciekaw, jaka jest różnica między tokenem „Trusted_Connection” i „Integrated Security” w parametrach połączenia SQL Server (uważam, że inne bazy danych / sterowniki ich nie obsługują). Rozumiem, że są równoważni.
Odpowiedzi:
Są dla siebie synonimami i mogą być używane zamiennie.
W .Net istnieje klasa o nazwie SqlConnectionStringBuilder, która jest bardzo przydatna do obsługi parametrów połączenia programu SQL Server przy użyciu właściwości bezpiecznych dla typu do tworzenia części ciągu. Ta klasa przechowuje wewnętrzną listę synonimów, dzięki czemu można ją mapować z jednej wartości na drugą:
+ ---------------------- + ------------------------- + | Wartość | Synonim | + ---------------------- + ------------------------- + | aplikacja | nazwa aplikacji | | async | przetwarzanie asynchroniczne | | rozszerzone właściwości | attachdbfilename | | początkowa nazwa pliku | attachdbfilename | | limit czasu połączenia | limit czasu połączenia | | limit czasu | limit czasu połączenia | | język | aktualny język | | addr | źródło danych | | adres | źródło danych | | adres sieciowy | źródło danych | | serwer | źródło danych | | baza danych | katalog początkowy | | zaufane_połączenie | zintegrowane bezpieczeństwo | | żywotność połączenia | limit czasu równoważenia obciążenia | | netto | biblioteka sieciowa | | sieć | biblioteka sieciowa | | pwd | hasło | | persistsecurityinfo | utrwalaj informacje o zabezpieczeniach | | uid | identyfikator użytkownika | | użytkownik | identyfikator użytkownika | | wsid | identyfikator stacji roboczej | + ---------------------- + ------------------------- +
(Skompilowano z pomocą Reflectora)
Istnieją inne podobne klasy do obsługi parametrów połączenia ODBC i OleDb , ale niestety nic dla innych dostawców baz danych - założyłbym, że obowiązek zapewnienia takiej implementacji spoczywa na bibliotece dostawcy.
Oni są tacy sami.
Niestety istnieje kilka takich odmian, w tym:
Serwer / źródło danych
Baza danych / Katalog początkowy
Nie jestem pewien pochodzenia tych odmian, zakładam, że niektóre mają być ogólne (nie skoncentrowane na bazie danych, więc parametry połączenia wyglądałyby bardzo podobnie, gdyby połączyć się z RDBMS vs połączyć się z usługą katalogową itp.)
catalog
jest częścią nomenklatury relacyjnych baz danych i nie odnosi się do niczego poza RDBMS. Jest to dość dobrze wyjaśnione w tej odpowiedzi SO: stackoverflow.com/questions/7022755/ ...
Więc trochę później odkryłem źródło starcia nazw. Zestaw tokenów był używany przez ODBC, a inny zestaw zdefiniowany dla OLEDB. W przypadku Sql Server ze starszych powodów nadal obsługują one zamiennie oba.
Trusted_Connection = true to ODBC, a Integrated Security = SSPI to OLEDB.
W moim przypadku odkryłem różnicę między „Trusted_Connection” a „Integrated Security”. Używam Microsoft SQL Server 2005. Początkowo korzystałem z logowania Windows (Integrated Security = SSPI). Ale kiedy zastąpiłem uwierzytelnianie systemu Windows przez uwierzytelnianie SQL Server, dodając identyfikator użytkownika i hasło, zastąpienie SSPI wartością „Fałsz” nie powiodło się. Zwrócił komunikat „Błąd generujący wielostopniową operację OLE DB”. Jednak kiedy zastąpiłem „Integrated Security = False” przez „Trusted_Connection = no”, zadziałało.