Partager via


Authentification dans SQL Server (ADO.NET)

Mise à jour : November 2007

SQL Server prend en charge deux modes d'authentification, le mode d'authentification Windows et le mode mixte.

  • L'authentification Windows correspond au mode par défaut et il est souvent qualifié de sécurité intégrée car ce modèle de sécurité SQL Server est étroitement intégré à Windows. Des comptes d'utilisateurs et de groupes Windows spécifiques sont approuvés pour se connecter à SQL Server. Les utilisateurs Windows qui ont déjà été authentifiés n'ont pas besoin de présenter d'informations d'identification supplémentaires.

  • Le mode mixte prend en charge l'authentification par Windows et par SQL Server. Les paires nom d'utilisateur–mot de passe sont conservées dans SQL Server.

Note de sécurité :

Il est recommandé d'utiliser l'authentification Windows chaque fois que possible. L'authentification Windows utilise une série de messages chiffrés pour authentifier les utilisateurs dans SQL Server. Lorsque des connexions SQL Server sont utilisées, les noms de connexion SQL Server et les mots de passe sont transmis vis le réseau, ce qui les rend moins sûrs.

Avec l'authentification Windows, les utilisateurs ont déjà ouvert une session Windows et n'ont pas besoin d'ouvrir une session SQL Server distincte. Le SqlConnection.ConnectionString suivant spécifie l'authentification Windows sans nécessiter de nom d'utilisateur ni de mot de passe.

"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;
Remarque :

Les connexions sont différentes des utilisateurs de base de données. Vous devez mapper les connexions ou les groupes Windows sur les utilisateurs de base de données ou les rôles dans une opération distincte. Vous accordez ensuite des autorisations aux utilisateurs ou aux rôles pour accéder aux objets de base de données.

Scénarios d'authentification

L'authentification Windows représente généralement le meilleur choix dans les situations suivantes :

  • Il existe un contrôleur de domaine.

  • L'application et la base de données se trouvent sur le même ordinateur.

  • Vous utilisez une instance de SQL Server Express.

Les connexions SQL Server sont souvent utilisées dans les situations suivantes :

  • si vous avez un groupe de travail ;

  • les utilisateurs se connectent à partir de domaines différents, non approuvés ;

  • les applications Internet, comme ASP.NET.

Remarque :

La spécification de l'authentification Windows ne désactive pas les connexions SQL Server. Utilisez l'instruction Transact-SQL ALTER LOGIN DISABLE pour désactiver des connexions SQL Server dotées de privilèges élevés.

Types de connexions

SQL Server 2000 prend en charge trois types de connexions :

  • Compte d'utilisateur Windows local ou compte de domaine approuvé. SQL Server s'appuie sur Windows pour authentifier les comptes d'utilisateurs Windows.

  • Groupe Windows. Accorder l'accès à un groupe Windows permet d'accorder l'accès à toutes les connexions utilisateur Windows membres du groupe.

  • Connexion SQL Server. SQL Server stocke le nom d'utilisateur et un hachage du mot de passe dans la base de données MASTER, en utilisant des méthodes d'authentification internes pour vérifier les tentatives de connexion.

Remarque :

SQL Server 2005 a ajouté les connexions créées à partir de certificats ou de clés asymétriques qui sont utilisées seulement pour la signature de code. Elles ne peuvent pas être utilisées pour se connecter à SQL Server.

Authentification en mode mixte

Si vous devez utiliser l'authentification en mode mixte, vous devez créer des connexions SQL Server qui sont stockées dans SQL Server. Vous devez ensuite fournir le nom d'utilisateur et le mot de passe SQL Server au moment de l'exécution.

Note de sécurité :

SQL Server est installé avec une connexion SQL Server nommée sa (abréviation de « system administrator »). Attribuez un mot de passe fort à la connexion sa et n'utilisez pas la connexion sa dans votre application. La connexion sa correspond au rôle serveur fixe sysadmin, qui possède des informations d'identification d'administration irrévocables sur le serveur entier. Si un attaquant bénéficie de l'accès en tant qu'administrateur système, les dommages potentiels sont sans limite. Tous les membres du groupe BUILTIN\Administrators Windows (groupe des administrateurs locaux) sont membres du rôle sysadmin par défaut, mais peuvent être supprimés de ce rôle.

SQL Server 2005 introduit des mécanismes de stratégie de mot de passe Windows pour les connexions SQL Server lorsque le logiciel s'exécute sous Windows Server 2003 ou des versions ultérieures. Les stratégies de complexité des mots de passe sont conçues pour prévenir les attaques en force brute en augmentant le nombre de mots de passe possibles. SQL Server 2005 peut appliquer aux mots de passe SQL Server les mêmes stratégies de complexité et d'expiration que celles utilisées dans Windows Server 2003.

Note de sécurité :

La concaténation des chaînes de connexion à partir des entrées utilisateur peut vous rendre vulnérable à une attaque par injection de chaîne de connexion. Utilisez le SqlConnectionStringBuilder pour créer des chaînes de connexion valides du point de vue de la syntaxe au moment de l'exécution. Pour plus d'informations, voir Générateurs de chaînes de connexion (ADO.NET).

Ressources externes

Pour plus d'informations, voir les ressources répertoriées ci-dessous.

Ressource

Description

Entités de sécurité dans la documentation en ligne de SQL Server 2008

Décrit les connexions et autres entités de sécurité dans SQL Server 2008.

Entités de sécurité dans la documentation en ligne de SQL Server 2005

Décrit les connexions et autres entités de sécurité dans SQL Server 2005.

Connexions dans la documentation en ligne de SQL Server 2000

Décrit les connexions et l'authentification dans SQL Server 2000.

Voir aussi

Concepts

Scénarios de sécurité des applications dans SQL Server (ADO.NET)

Autres ressources

Sécurisation des applications ADO.NET

Connexion à une source de données (ADO.NET)

Chaînes de connexion (ADO.NET)