Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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", он сработал.