В чем разница между Trusted_Connection и Integrated Security в строке подключения?

81

Мне любопытно, какая разница между токеном «Trusted_Connection» и «Integrated Security» в строках подключения к SQL Server (я считаю, что другие базы данных / драйверы не поддерживают их). Я понимаю, что они равнозначны.

Питер Олерт
источник

Ответы:

100

Они являются синонимами друг друга и могут использоваться как синонимы.

В .Net есть класс SqlConnectionStringBuilder, который очень полезен для работы со строками подключения к SQL Server с использованием типобезопасных свойств для создания частей строки. Этот класс хранит внутренний список синонимов, поэтому он может отображать одно значение в другое:

+ ---------------------- + ------------------------- +
| Значение | Синоним |
+ ---------------------- + ------------------------- +
| приложение | название приложения |
| асинхронный | асинхронная обработка |
| расширенные свойства | attachdbfilename |
| исходное имя файла | attachdbfilename |
| время ожидания соединения | время ожидания подключения |
| тайм-аут | время ожидания подключения |
| язык | текущий язык |
| адрес | источник данных |
| адрес | источник данных |
| сетевой адрес | источник данных |
| сервер | источник данных |
| база данных | исходный каталог |
| доверенное_соединение | комплексная безопасность |
| время жизни соединения | таймаут балансировки нагрузки |
| чистая | сетевая библиотека |
| сеть | сетевая библиотека |
| pwd | пароль |
| persistsecurityinfo | сохранить информацию о безопасности |
| uid | идентификатор пользователя |
| пользователь | идентификатор пользователя |
| wsid | идентификатор рабочей станции |
+ ---------------------- + ------------------------- +

(Скомпилировано с помощью Reflector)

Существуют и другие аналогичные классы для работы со строками подключения ODBC и OleDb , но, к сожалению, ничего для других поставщиков баз данных - я бы предположил, что ответственность за предоставление такой реализации лежит на библиотеке поставщика.

Адрианбэнкс
источник
Замечание для будущих зрителей: Trusted Connection не работает для меня на Sql Server 2014. Однако Integrated Security работает, так что я с этим согласен!
Stachu
4
В SQL Express 2014 я использую trust_connection, и он работает ... обратите внимание на подчеркивание, пожалуйста, и вы должны использовать «yes», а не «true» при использовании trust_connection
Зоран П.
10

Они одинаковые.

К сожалению, существует несколько подобных вариантов, в том числе:

Сервер / Источник данных

База данных / начальный каталог

Я не уверен в происхождении вариантов, я предполагаю, что некоторые из них должны быть общими (не ориентированными на базу данных, поэтому ваша строка подключения будет выглядеть очень похожей при подключении к СУБД по сравнению с подключением к службе каталогов и т. Д.)

Кейд Ру
источник
Этот термин catalogявляется частью номенклатуры реляционных баз данных и не относится ни к чему, кроме РСУБД. Это довольно хорошо объясняется в этом SO-ответе: stackoverflow.com/questions/7022755/…
ProfK
2

Немного позже я обнаружил истоки конфликта имен. Набор токенов использовался ODBC, а другой набор определен для OLEDB. Для Sql Server по унаследованным причинам они по-прежнему взаимозаменяемы.

Trusted_Connection = true - это ODBC, а Integrated Security = SSPI - это OLEDB.

Питер Олерт
источник
1
connectionstrings.com/sql-server, похоже, говорит, что либо работает для OLEDB. У вас есть другой ресурс?
AlignedDev
1

В моем случае я обнаружил разницу между «Trusted_Connection» и «Integrated Security». Я использую Microsoft SQL Server 2005. Изначально я использовал вход в Windows (Integrated Security = SSPI). Но когда я заменил аутентификацию Windows аутентификацией SQL Server, добавив идентификатор пользователя и пароль, замена SSPI на "False" не удалась. Он возвратил «Ошибка создания многоэтапной операции OLE DB». Однако когда я заменил «Integrated Security = False» на «Trusted_Connection = no», это сработало.

Кордис Аудакс Агринова
источник
Если вы используете аутентификацию SQL Server и указываете идентификатор пользователя и пароль, вам не нужно упоминать «интегрированную безопасность» или «доверенные_соединения».
Grahamesd