Al usar Trusted_Connection = true y la autenticación de SQL Server, ¿afectará esto al rendimiento?

Si una cadena de conexión especifica Trusted_Connection=true con el modo de autenticación de SQL Server, ¿se verá afectado el rendimiento de mi aplicación web?

No estoy 100% seguro de lo que quieres decir:

 Trusted_Connection=True; 

IS usando credenciales de Windows y es 100% equivalente a:

 Integrated Security=SSPI; 

o

 Integrated Security=true; 

Si no desea utilizar una conexión de seguridad / confiable integrada, debe especificar el ID de usuario y la contraseña explícitamente en la cadena de conexión (y Trusted_Connection cualquier referencia a Trusted_Connection o Integrated Security )

 server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret 

Solo en este caso, se utiliza el modo de autenticación de SQL Server.

Si alguna de estas dos configuraciones está presente ( Trusted_Connection=true o Integrated Security=true/SSPI ), las credenciales de Windows del usuario actual se usan para autenticarse en SQL Server y cualquier user iD= se ignorará y no se usará.

Como referencia, consulte el sitio de Connection Strings para SQL Server 2005 con muchas muestras y explicaciones.

Usar la Autenticación de Windows es la forma preferida y recomendada de hacer las cosas, pero podría incurrir en un ligero retraso ya que SQL Server tendría que autenticar sus credenciales contra el Directorio Activo (normalmente). No tengo idea de cuánto podría ser esa pequeña demora, y no he encontrado ninguna referencia para eso.


Resumiendo:

Si especifica Trusted_Connection=True; o Integrated Security=SSPI; o Integrated Security=true; en tu cadena de conexión

==> ENTONCES (y solo entonces) tiene la autenticación de Windows . Cualquier user id= configuración en la cadena de conexión será ignorado .


Si NO especifica ninguna de esas configuraciones,

==> entonces NO TIENE autenticación de Windows (se usará el modo de Autenticación de SQL)


Cuando utiliza conexiones confiables, el nombre de usuario y la contraseña son IGNORADOS porque SQL Server usa la autenticación de Windows.

Esto probablemente tendrá algunos costos de rendimiento al crear la conexión, pero a medida que se agrupen las conexiones, se crean solo una vez y luego se reutilizan, por lo que no tendrá ninguna importancia para su aplicación. Pero como siempre: mídelo.


ACTUALIZAR:

Hay dos modos de autenticación:

  1. Modo de Autenticación de Windows (correspondiente a una conexión de confianza). Los clientes deben ser miembros de un dominio.
  2. Modo de Autenticación del Servidor SQL. Los clientes están enviando nombre de usuario / contraseña en cada conexión

Si su aplicación web está configurada para suplantar a un cliente, entonces el uso de una conexión de confianza tendrá un impacto negativo en el rendimiento. Esto se debe a que cada cliente debe usar un grupo de conexiones diferente (con las credenciales del cliente).

La mayoría de las aplicaciones web no utilizan suplantación / delegación, y por lo tanto no tienen este problema.

Vea este artículo de MSDN para más información.