web-dev-qa-db-fra.com

Lorsque vous utilisez Trusted_Connection = true et l'authentification SQL Server, cela affectera-t-il les performances?

Si une chaîne de connexion spécifie Trusted_Connection=true avec le mode d'authentification SQL Server, les performances de mon application Web seront-elles affectées?

46
George2

Je ne suis pas sûr à 100% de ce que vous voulez dire:

Trusted_Connection=True;

[~ # ~] utilise [~ # ~] avec les informations d'identification Windows et équivaut à 100% à:

Integrated Security=SSPI;

ou

Integrated Security=true;

Si vous ne souhaitez pas utiliser une connexion sécurisée/sécurisée intégrée, vous devez spécifier explicitement l'ID utilisateur et le mot de passe dans la chaîne de connexion (et laisser de côté toute référence à Trusted_Connection ou Integrated Security)

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

Dans ce cas uniquement, le mode d'authentification SQL Server est utilisé.

Si l'un de ces deux paramètres est présent (Trusted_Connection=true ou Integrated Security=true/SSPI), les informations d'identification Windows de l'utilisateur actuel sont utilisées pour s'authentifier auprès de SQL Server et de tout user iD= le paramètre sera ignoré et non utilisé.

Pour référence, consultez le site des chaînes de connexion pour SQL Server 2005 avec de nombreux exemples et explications.

L'utilisation de l'authentification Windows est la manière préférée et recommandée de faire les choses, mais cela peut entraîner un léger retard car SQL Server devrait authentifier vos informations d'identification auprès d'Active Directory (généralement). Je n'ai aucune idée de l'ampleur de ce léger retard et je n'ai trouvé aucune référence à ce sujet.


Résumé:

Si vous spécifiez soit Trusted_Connection=True; ou Integrated Security=SSPI; ou Integrated Security=true; dans votre chaîne de connexion

==> [~ # ~] puis [~ # ~] (et alors seulement) vous avez Authentification Windows passe. Tout user id= le paramètre dans la chaîne de connexion sera ignoré .


Si vous NE PAS spécifier l'un de ces paramètres,

==> alors vous NE PAS avoir l'authentification Windows en cours (le mode d'authentification SQL sera utilisé)


127
marc_s

Lorsque vous utilisez des connexions approuvées, le nom d'utilisateur et le mot de passe sont IGNORÉS, car SQL Server utilise l'authentification Windows.

8
Tror

Cela entraînera probablement des coûts de performances lors de la création de la connexion, mais comme les connexions sont regroupées, elles ne sont créées qu'une seule fois, puis réutilisées, de sorte que cela ne fera aucune différence pour votre application. Mais comme toujours: mesurez-le.


MISE À JOUR:

Il existe deux modes d'authentification:

  1. Mode d'authentification Windows (correspondant à une connexion sécurisée). Les clients doivent être membres d'un domaine.
  2. Mode d'authentification SQL Server. Les clients envoient leur nom d'utilisateur/mot de passe à chaque connexion
4
Darin Dimitrov

Si votre application Web est configurée pour emprunter l'identité d'un client, l'utilisation d'une connexion sécurisée aura potentiellement un impact négatif sur les performances. En effet, chaque client doit utiliser un pool de connexions différent (avec les informations d'identification du client).

La plupart des applications Web n'utilisent pas l'emprunt d'identité/délégation et n'ont donc pas ce problème.

Voir cet article MSDN pour plus d'informations.

1
Joe