Ao usar Trusted_Connection = true e autenticação do SQL Server, isso afetará o desempenho?

Se uma cadeia de conexão especificar Trusted_Connection=true com o modo de autenticação do SQL Server, o desempenho do meu aplicativo da Web será afetado?

Não tem 100% de certeza do que você quer dizer:

 Trusted_Connection=True; 

IS usando credenciais do Windows e é 100% equivalente a:

 Integrated Security=SSPI; 

ou

 Integrated Security=true; 

Se você não deseja usar segurança integrada / conexão confiável, é necessário especificar o ID do usuário e a senha explicitamente na cadeia de conexão (e Trusted_Connection qualquer referência a Trusted_Connection ou Integrated Security )

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

Somente nesse caso, o modo de autenticação do SQL Server é usado.

Se qualquer uma dessas duas configurações estiver presente ( Trusted_Connection=true ou Integrated Security=true/SSPI ), as credenciais do Windows do usuário atual serão usadas para autenticação no SQL Server e qualquer configuração de user iD= será ignorada e não será usada.

Para referência, consulte o site Connection Strings do SQL Server 2005 com muitos exemplos e explicações.

Usar a Autenticação do Windows é a maneira preferida e recomendada de fazer as coisas, mas pode haver um pequeno atraso, pois o SQL Server teria que autenticar suas credenciais no Active Directory (normalmente). Eu não tenho ideia do quanto esse pequeno atraso pode ser, e não encontrei nenhuma referência para isso.


Resumindo:

Se você especificar Trusted_Connection=True; ou Integrated Security=SSPI; ou Integrated Security=true; na sua string de conexão

==> ENTÃO (e só então) você tem a autenticação do Windows acontecendo. Qualquer user id= configuração na string de conexão será ignorado .


Se você NÃO especificar nenhuma dessas configurações,

==> então você não tem a autenticação do Windows acontecendo (o modo de autenticação SQL será usado)


Quando você usa conexões confiáveis, o nome de usuário e a senha são IGNORED, porque o SQL Server usa a autenticação do Windows.

Isso provavelmente terá alguns custos de desempenho ao criar a conexão, mas como as conexões são agrupadas, elas são criadas apenas uma vez e, em seguida, reutilizadas, por isso não fará diferença no seu aplicativo. Mas como sempre: mede isso.


ATUALIZAR:

Existem dois modos de autenticação:

  1. Modo de autenticação do Windows (correspondente a uma conexão confiável). Os clientes precisam ser membros de um domínio.
  2. Modo de Autenticação do SQL Server. Os clientes estão enviando nome de usuário / senha em cada conexão

Se o seu aplicativo da Web estiver configurado para representar um cliente, o uso de uma conexão confiável provavelmente terá um impacto negativo no desempenho. Isso ocorre porque cada cliente deve usar um pool de conexão diferente (com as credenciais do cliente).

A maioria dos aplicativos da Web não usa representação / delegação e, portanto, não tem esse problema.

Veja este artigo do MSDN para mais informações.