В чем разница между Trusted_Connection и Integrated Security в строке подключения?
Мне любопытно, какая разница между токеном "Trusted_Connection" и "Integrated Security" в строках подключения SQL Server (я считаю, что другие базы данных/драйверы не поддерживают их). Я понимаю, что они равноценны.
Ответы
Ответ 1
Они являются синонимами друг для друга и могут использоваться взаимозаменяемо.
В .Net существует класс под названием SqlConnectionStringBuilder, который очень полезен для работы со строками подключения SQL Server с использованием свойств типа безопасности для создания частей строки. Этот класс хранит внутренний список синонимов, поэтому он может отображать одно значение в другое:
+----------------------+-------------------------+
| Value | Synonym |
+----------------------+-------------------------+
| app | application name |
| async | asynchronous processing |
| extended properties | attachdbfilename |
| initial file name | attachdbfilename |
| connection timeout | connect timeout |
| timeout | connect timeout |
| language | current language |
| addr | data source |
| address | data source |
| network address | data source |
| server | data source |
| database | initial catalog |
| trusted_connection | integrated security |
| connection lifetime | load balance timeout |
| net | network library |
| network | network library |
| pwd | password |
| persistsecurityinfo | persist security info |
| uid | user id |
| user | user id |
| wsid | workstation id |
+----------------------+-------------------------+
(Скомпилировано с помощью рефлектора)
Существуют и другие аналогичные классы для работы с ODBC и OleDb, но, к сожалению, ничего для других поставщиков баз данных - я бы предположил, что брандмауэр находится в библиотеке поставщика, чтобы обеспечить такую реализацию.
Ответ 2
Они одинаковы.
К сожалению, существует несколько вариантов, таких как:
Сервер/источник данных
База данных/начальный каталог
Я не уверен в происхождении вариантов, я предполагаю, что некоторые из них предназначены для общего (не ориентированного на базу данных, поэтому ваша строка соединения будет очень похожа, если вы подключаетесь к RDBMS или подключаетесь к службе каталогов и т.д. )
Ответ 3
Итак, немного позже я обнаружил происхождение столкновения имени. Набор токенов использовался ODBC и другой набор, определенный для OLEDB. Для Sql Server по старым причинам они по-прежнему поддерживают как взаимозаменяемые.
Trusted_Connection = true - ODBC и Integrated Security = SSPI был OLEDB.
Ответ 4
В моем случае я обнаружил разницу между "Trusted_Connection" и "Integrated Security". Я использую Microsoft SQL Server 2005. Первоначально я использовал Windows logon (Integrated Security = SSPI). Но когда я заменил аутентификацию Windows с помощью аутентификации SQL Server, добавив идентификатор пользователя и пароль, замена SSPI на "False" не удалась. Он вернул "сгенерированную ошибку с несколькими шагами OLE DB". Однако, когда я заменил "Integrated Security = False" на "Trusted_Connection = no", он сработал.