2010-06-19 9 views

Respuesta

67

Son sinónimos el uno para el otro y se pueden usar intercha ngeably.

En .Net, hay una clase llamada SqlConnectionStringBuilder que es muy útil para tratar con SQL Server cadenas de conexión que usan propiedades de tipo de fallos para construir partes de la cadena. Esta clase mantiene una lista interna de sinónimos para que pueda asignar de un valor a otro:

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

(Compilado con la ayuda del reflector)

Hay otras clases similares para hacer frente a ODBC y OleDb conexión cadenas, pero desafortunadamente nada para otros proveedores de bases de datos - Asumiría que la responsabilidad está en la biblioteca de un proveedor para proporcionar dicha implementación.

+0

Nota al margen para futuros espectadores de esto: Trusted Connection no funciona para mí en un servidor Sql 2014. Sin embargo, Integrated Security lo hace, ¡así que voy con eso! – statue

+4

En SQL Express 2014 estoy usando trusted_connection y está funcionando ... tenga en cuenta underscorec, por favor, y tiene que usar "yes" en lugar de "true" cuando use trusted_connection –

9

Son lo mismo.

Por desgracia, hay muchas variantes de este tipo, entre ellos:

servidor/fuente de datos

base de datos/Catálogo inicial

las que no estoy seguro de la fuente de las variaciones, supongo que algunos están destinados a ser genéricos (no centrados en la base de datos para que su cadena de conexión se vea muy similar si se conecta a un RDBMS vs conectarse a un servicio de directorio, etc.)

+0

El término '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: http://stackoverflow.com/questions/7022755/whats-the-difference-between-a-catalog-and-a-schema-in-a-relational-database – ProfK

2

Un poco después descubrí los orígenes del nombre clash. Un conjunto de tokens fue utilizado por ODBC y un conjunto diferente definido para OLEDB. Para Sql Server por razones heredadas, aún así admiten ambos de forma intercambiable.

Trusted_Connection = true es ODBC y Seguridad integrada = SSPI era OLEDB.

+1

http://www.connectionstrings.com/sql-server parece decir que cualquiera de los trabajos para OLEDB. ¿Tienes un recurso diferente? – Aligned

1

En mi caso, he descubierto una diferencia entre "Trusted_Connection" y "Integrated Security". Estoy usando Microsoft SQL Server 2005. Originalmente utilicé el inicio de sesión de Windows (Integrated Security = SSPI). Pero cuando reemplacé la autentificación de Windows por la autentificación de SQL Server agregando ID de usuario y contraseña, se produjo un error al reemplazar SSPI por "False". 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ó.

+0

Si usa la autenticación de SQL Server y especifica la identificación de usuario y la contraseña, no necesita mencionar "seguridad integrada" o "trusted_connections". – grahamesd

Cuestiones relacionadas