web-dev-qa-db-fra.com

Impossible de se connecter en utilisant SA avec l'authentification SQL

Je ne peux pas me connecter à SQL Server 2008 à l'aide de l'authentification SQL Server.

Je ne peux me connecter qu'en utilisant le mode d'authentification Windows.

J'ai choisi uniquement les valeurs par défaut lors de l'installation de SQL Server 2008 R2.

9
khan

Avez-vous regardé n'importe où? Cliquez avec le bouton droit sur le serveur et choisissez Propriétés, puis sélectionnez l'écran Sécurité.

enter image description here

Ensuite, connectez-vous à l'aide de votre compte administrateur d'authentification Windows et définissez le mot de passe pour le compte d'authentification SQL sa.

ALTER LOGIN sa WITH PASSWORD = 'strong password here';
13
Aaron Bertrand

Quel mode d'authentification?

Votre serveur a peut-être été configuré pour s'exécuter en Mode d'authentification Windows uniquement. Cela peut être vérifié en ouvrant la section Propriétés de votre instance SQL Server dans SQL Server Management Studio et en consultant la section Sécurité:

SSMS Security Properties

Ou vous pouvez exécuter l'instruction SQL Server suivante après vous être connecté avec un compte Windows:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'

Si la valeur renvoyée est LoginMode 2 then SQL Server et le mode d'authentification Windows a été activé. (Voir Étape 2. pour plus de détails sur la façon de changer cela.)

Si la valeur renvoyée est LoginMode 1 then Mode d'authentification Windows a été activé. (Voir Étape 1. pour plus de détails sur la façon de modifier ce paramètre) La connexion avec des connexions SQL Server pures n'est pas possible.


Étape 1. - Modification du mode d'authentification

Si votre instance a été configurée pour utiliser uniquement Mode authentifié Windows, vous devrez activer SQL Server et le mode d'authentification Windows et redémarrer votre serveur. Suivez ces étapes simples:

1. Changer le mode d'authentification

Script SQL

USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO

SQL Server Management Studio (SSMS)

Modifiez le paramètre dans la section sécurité de la fenêtre des propriétés en SQL Server et le mode d'authentification Windows.

SSMS Security Properties - SQL Server and Windows Authentication mode

2. Redémarrez l'instance SQL Server

Script SQL

(peut être réalisé via SQL Script en Mode SQLCMD)

-- Connect to your instance
-- (Replace <instancename> with your instance's name
:connect <instancename>

-- Stop your SQL Server instance 

-- (Replace SQLSERVERAGENT with the name of your service)
!! net stop SQLSERVERAGENT
-- (Replace MSSQLServer with the name of your service)
!! net stop MSSQLServer

-- Start your SQL Server instance 

-- (Replace SQLSERVERAGENT with the name of your service)
!! net start MSSQLServer
-- (Replace SQLSERVERAGENT with the name of your service)   
!! net start SQLSERVERAGENT

:connect localhost

SQL Server Management Studio (SSMS)

Cliquez avec le bouton droit sur votre instance SQL Server et sélectionnez Redémarrer dans le menu contextuel:

SSMS Instance Restart via context menu

3. Vérifiez le paramètre

Script SQL

Vérifiez que votre instance s'exécute en SQL Server et mode d'authentification Windows en exécutant la commande suivante:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'

Vous devriez recevoir un LoginMode 2.

SQL Server Management Studio (SSMS)

Vérifiez que le bouton radio est sélectionné pour SQL Server et le mode d'authentification Windows.

SSMS Security Properties - SQL Server and Windows Authentication mode

Si votre compte sa a été désactivé, veuillez également suivre Étape 2.. Sinon, vous avez terminé.


Étape 2. Activation d'un compte sa

Dans le cas d'un compte sa désactivé, allez-y et réactivez le compte SQL Server. Cela peut être réalisé avec le script suivant:

USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO

... ou via SSMS.

3