Tengo curiosidad por saber cuál es la diferencia entre el token "Trusted_Connection" y la "Seguridad integrada" en las cadenas de conexión de SQL Server (creo que otras bases de datos / controladores no los admiten). Entiendo que son equivalentes.
Tengo curiosidad por saber cuál es la diferencia entre el token "Trusted_Connection" y la "Seguridad integrada" en las cadenas de conexión de SQL Server (creo que otras bases de datos / controladores no los admiten). Entiendo que son equivalentes.
Respuestas:
Son sinónimos entre sí y se pueden usar indistintamente.
En .Net, hay una clase llamada SqlConnectionStringBuilder que es muy útil para tratar con cadenas de conexión de SQL Server utilizando propiedades de tipo seguro para construir partes de la cadena. Esta clase mantiene una lista interna de sinónimos para que pueda mapear de un valor a otro:
+ ---------------------- + ------------------------- + | Valor | Sinónimo | + ---------------------- + ------------------------- + | aplicación | nombre de la aplicación | | async | procesamiento asincrónico | | propiedades extendidas | attachdbfilename | | nombre de archivo inicial | attachdbfilename | | tiempo de espera de conexión | tiempo de espera de conexión | | tiempo de espera | tiempo de espera de conexión | | idioma | idioma actual | | addr | fuente de datos | | direccion | fuente de datos | | dirección de red | fuente de datos | | servidor | fuente de datos | | base de datos | catalogo inicial | | confiable_conexión | seguridad integrada | | vida útil de la conexión | tiempo de espera del equilibrio de carga | | neto | biblioteca de red | | red | biblioteca de red | | pwd | contraseña | | persistsecurityinfo | persistir información de seguridad | | uid | ID de usuario | | usuario | ID de usuario | | wsid | ID de la estación de trabajo | + ---------------------- + ------------------------- +
(Compilado con la ayuda de Reflector)
Hay otras clases similares para tratar con cadenas de conexión ODBC y OleDb , pero desafortunadamente nada para otros proveedores de bases de datos; supongo que la responsabilidad recae en la biblioteca del proveedor para proporcionar dicha implementación.
Ellos son iguales.
Desafortunadamente, existen varias variaciones como esta, que incluyen:
Servidor / Fuente de datos
Base de datos / Catálogo inicial
No estoy seguro de los orígenes de las variaciones, supongo que algunas están destinadas a ser genéricas (no centradas en la base de datos, por lo que su cadena de conexión se vería muy similar si se conecta a un RDBMS en lugar de conectarse a un servicio de directorio, etc.)
catalog
es parte de la nomenclatura de la base de datos relacional y no se refiere a nada más que a un RDBMS. Se explica bastante bien en esta respuesta SO: stackoverflow.com/questions/7022755/…
Así que un poco más tarde descubrí el origen del conflicto de nombres. ODBC utilizó un conjunto de tokens y se definió un conjunto diferente para OLEDB. Para Sql Server, por razones heredadas, todavía admiten ambos indistintamente.
Trusted_Connection = true es ODBC y Integrated Security = SSPI era OLEDB.
En mi caso, he descubierto una diferencia entre "Trusted_Connection" y "Seguridad integrada". Estoy usando Microsoft SQL Server 2005. Originalmente usé el inicio de sesión de Windows (Seguridad Integrada = SSPI). Pero cuando reemplacé la autenticación de Windows por la autenticación de SQL Server agregando el ID de usuario y la contraseña, el reemplazo de SSPI por "Falso" falló. Devolvió un "error generado por la operación OLE DB de varios pasos". Sin embargo, cuando reemplacé "Integrated Security = False" por "Trusted_Connection = no", funcionó.