Мені цікаво, яка різниця між маркером "Trusted_Connection" та "Integrated Security" у рядках підключення SQL Server (я вважаю, що інші бази даних / драйвери їх не підтримують). Я розумію, що вони еквівалентні.
Мені цікаво, яка різниця між маркером "Trusted_Connection" та "Integrated Security" у рядках підключення SQL Server (я вважаю, що інші бази даних / драйвери їх не підтримують). Я розумію, що вони еквівалентні.
Відповіді:
Вони є синонімами один одного і можуть використовуватися як взаємозамінні.
У .Net є клас під назвою SqlConnectionStringBuilder, який є дуже корисним для роботи з рядками підключень SQL Server з використанням властивостей безпечного типу для побудови частин рядка. Цей клас зберігає внутрішній список синонімів, щоб він міг переходити від одного значення до іншого:
+ ---------------------- + ------------------------- + | Значення | Синонім | + ---------------------- + ------------------------- + | додаток | назва програми | | асинхронізація | асинхронна обробка | | розширені властивості | attachdbfilename | | початкова назва файлу | attachdbfilename | | час очікування підключення | підключити час очікування | | час очікування | підключити час очікування | | мова | поточна мова | | addr | джерело даних | | адреса | джерело даних | | мережева адреса | джерело даних | | сервер | джерело даних | | база даних | початковий каталог | | довірене_зв'язок | інтегрована безпека | | термін служби підключення | час очікування балансу навантаження | | нетто | мережева бібліотека | | мережа | мережева бібліотека | | pwd | пароль | | persistsecurityinfo | зберігати інформацію про безпеку | | uid | ідентифікатор користувача | | користувач | ідентифікатор користувача | | wsid | ідентифікатор робочої станції | + ---------------------- + ------------------------- +
(Складено за допомогою Reflector)
Існують і інші подібні класи для роботи з рядками підключень ODBC та OleDb , але, на жаль, нічого для інших постачальників баз даних - я б припустив, що ця бібліотека постачальника несе таку реалізацію.
Вони однакові.
На жаль, існує кілька таких варіантів, серед яких:
Сервер / Джерело даних
База даних / Початковий каталог
Я не впевнений у походженні варіантів, я припускаю, що деякі з них мають бути загальними (не орієнтованими на базу даних, тому рядок підключення буде виглядати дуже схожим, якщо підключатись до СУБД проти підключення до служби каталогів тощо)
catalog
є частиною номенклатури реляційних баз даних і не стосується нічого, крім СУБД. Це пояснюється досить добре в цьому SO відповідь: stackoverflow.com/questions/7022755 / ...
Тож трохи пізніше я виявив витоки зіткнення імен. ODBC використовував набір токенів, а для OLEDB - інший набір. Для Sql Server із застарілих причин вони як і раніше підтримують як взаємозамінні.
Trusted_Connection = true - це ODBC, а інтегрована безпека = SSPI - OLEDB.
У моєму випадку я виявив різницю між "Trusted_Connection" та "Integrated Security". Я використовую Microsoft SQL Server 2005. Спочатку я використовував вхід у систему Windows (Інтегрована безпека = SSPI). Але коли я замінив автентифікацію Windows аутентифікацією SQL Server, додавши ідентифікатор користувача та пароль, заміна SSPI на "False" не вдалася. Він повернув "Помилку, створену за допомогою багатоступеневої операції OLE DB". Однак, коли я замінив "Інтегрована безпека = Неправда" на "Trusted_Connection = ні", це спрацювало.