Мне любопытно, какая разница между токеном "Trusted_Connection" и "Integrated Security" в строках подключения SQL Server (я считаю, что другие базы данных/драйверы не поддерживают их). Я понимаю, что они равноценны.
В чем разница между Trusted_Connection и Integrated Security в строке подключения?
Ответ 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", он сработал.