Jaka jest różnica między Trusted_Connection a Integrated Security w ciągu połączenia?

81

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.

Peter Oehlert
źródło

Odpowiedzi:

100

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.

adrianbanks
źródło
Uwaga boczna dla przyszłych widzów: Zaufane połączenie nie działa dla mnie w Sql Server 2014. Zintegrowane zabezpieczenia działają, więc idę z tym!
Stachu
4
W SQL Express 2014 używam trust_connection i to działa ... zwróć uwagę na podkreślenie, proszę i musisz użyć „yes” zamiast „true” podczas korzystania z trust_connection
Zoran P.
10

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.)

Cade Roux
źródło
Termin catalogjest 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/ ...
ProfK
2

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.

Peter Oehlert
źródło
1
connectionstrings.com/sql-server wydaje się mówić, że albo działa dla OLEDB. Czy masz inny zasób?
AlignedDev
1

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.

Cordis Audax Agrinova
źródło
Jeśli używasz uwierzytelniania SQL Server i określasz identyfikator użytkownika i hasło, nie musisz wspominać o „zintegrowanych zabezpieczeniach” lub „zaufanych_połączeniach”.
grahamesd