В чем разница между Trusted_Connection и Integrated Security в строке подключения? - PullRequest
67 голосов
/ 20 июня 2010

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

Ответы [ 4 ]

82 голосов
/ 20 июня 2010

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

В .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          |
+----------------------+-------------------------+

(составлено с помощью Reflector)

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

9 голосов
/ 20 июня 2010

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

К сожалению, есть несколько вариантов, таких как:

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

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

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

2 голосов
/ 25 июня 2010

Итак, чуть позже я обнаружил происхождение названия столкновения.Набор токенов использовался ODBC, а другой набор определен для OLEDB.Для Sql Server по устаревшим причинам они все еще поддерживают оба взаимозаменяемо.

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

1 голос
/ 24 октября 2014

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

...