Changer le mode d’authentification du serveur

S’applique à :SQL Server

Cette rubrique explique comment changer le mode d’authentification du serveur dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL. Au cours de l’installation, le Moteur de base de données SQL Server est paramétré sur Mode d’authentification Windows ou sur Mode d’authentification SQL Server et Windows. Après l'installation, vous pouvez modifier le mode d'authentification à tout moment.

Si vous sélectionnez le Mode d’authentification Windows au cours de l’installation, la connexion sa est désactivée et un mot de passe est attribué par le programme d’installation. Si vous changez ensuite le mode d’authentification en Mode d’authentification SQL Server et Windows, la connexion sa reste désactivée. Pour utiliser la connexion sa, utilisez l’instruction ALTER LOGIN de façon à activer la connexion sa et attribuer un nouveau mot de passe. La connexion sa au serveur est possible seulement en utilisant l’authentification SQL Server.

Notes

Le compte sa est un compte SQL Server bien connu qui est souvent la cible d’utilisateurs malveillants. N’activez pas le compte sa à moins que votre application ne le nécessite. Il est important d’utiliser un mot de passe fort pour la connexion sa.

Changer le mode d’authentification avec SQL Server Management Studio

  1. Dans l’Explorateur d’objets de SQL Server Management Studio (SSMS), cliquez avec le bouton droit sur le serveur, puis sélectionnez Propriétés.

  2. Dans la page Sécurité, sous Authentification du serveur, sélectionnez le nouveau mode d’authentification du serveur, puis cliquez sur OK.

  3. Dans la boîte de dialogue SQL Server Management Studio, sélectionnez OK pour confirmer l’obligation de redémarrer SQL Server.

  4. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur votre serveur, puis sélectionnez Redémarrer. S'il est en cours d'exécution, l'Agent SQL Server doit également être redémarré.

Activer la connexion sa

Vous pouvez activer la connexion sa avec SSMS ou Transact-SQL.

Utiliser SSMS

  1. Dans l’Explorateur d’objets, développez Sécurité, développez Connexions, cliquez avec le bouton droit sur sa, puis sélectionnez Propriétés.

  2. Dans la page Général, vous devrez peut-être créer et confirmer un mot de passe pour la connexion sa.

  3. Dans la page État, dans la section Connexion, sélectionnez Activée, puis sélectionnez OK.

Utiliser Transact-SQL

L’exemple suivant active la connexion sa et définit un nouveau mot de passe. Remplacez <enterStrongPasswordHere> par un mot de passe fort avant d’exécuter ce code.

ALTER LOGIN sa ENABLE;
GO
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>';
GO

Exemples

Attention

Les exemples suivants utilisent une procédure stockée étendue pour la modification du registre du serveur. En effet, toute erreur de modification peut être à l’origine de problèmes graves. Ces problèmes peuvent vous obliger à réinstaller le système d’exploitation. Microsoft ne peut pas garantir que ces problèmes peuvent être résolus. Vous modifiez le Registre à vos propres risques.

Les autorisations requises pour modifier le mode d’authentification sont sysadmin ou CONTROL SERVER.

A. Modifier l’authentification sur Windows uniquement

  1. Modifier l’authentification du serveur en Windows uniquement :

    USE [master]
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
         N'Software\Microsoft\MSSQLServer\MSSQLServer',
         N'LoginMode', REG_DWORD, 1;
    GO
    
  2. Désactivez le compte sa :

    USE [master]
    GO
    
    ALTER LOGIN sa DISABLE;
    GO
    

B. Modifier l’authentification en mode mixte (Windows et SQL)

  1. Activez le compte sa et définissez un mot de passe fort :

    USE [master]
    GO
    
    ALTER LOGIN sa ENABLE;
    GO
    
    ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>';
    GO
    
  2. Changer le mode d’authentification du serveur en mode mixte :

    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode', REG_DWORD, 2;
    GO