Impossible de se connecter à SQL Server à l'aide du compte «sa», qu'est-ce qui me manque?

20

J'essaie de me connecter à une instance de SQL Server 2005 Express à l'aide de la commande suivante:

osql -S .\INSTANCE -U sa -P password

J'obtiens l'erreur: la connexion a échoué pour l'utilisateur 'sa'.

Je peux très bien me connecter en utilisant le commutateur -E. Je dois ajouter que cela fonctionne depuis des mois. Je pense que quelqu'un a changé quelque chose mais je ne peux pas comprendre ce que c'est.

Voici ce que j'ai essayé:

  • Connectez-vous en utilisant l'authentification Windows et en changeant le mot de passe sa:

    sp_password NULL, newpassword, 'sa'

  • Activation de la connexion 'sa':

    ALTER LOGIN sa ENABLE; GO ALTER LOGIN sa WITH PASSWORD = 'newpassword'; ALLER

  • Vérifiez le registre Windows pour vous assurer que l' authentification mixte est activée. La valeur était correcte: LoginMode = 2

Que dois-je vérifier d'autre? Merci d'avance.

INFORMATION ADDITIONNELLE:

Il s'agit d'un serveur Windows 2003. Certaines stratégies de mot de passe sont activées, je me souviens que je devais changer le mot de passe par défaut «sa» que mon application utilise lorsqu'elle installe SQL Server en un autre plus complexe.

Je me connecte en utilisant VNC, donc je ne peux pas vraiment utiliser SSMS

Mon application peut se connecter en utilisant une autre connexion SQL Server, mais pas de 'sa'

Enfin, si nous ne trouvons pas de solution, je supprimerai cette instance et la réinstallerai, mais j'aimerais vraiment savoir quel est le problème. Juste au cas où cela se reproduirait et juste par simple curiosité.

POINTE
la source

Réponses:

23

Comme l'a dit @SpaceManSpiff, n'oubliez pas de vérifier si le mode mixte est activé. Quelqu'un a changé ce paramètre pour moi et j'ai eu le même problème. Voici comment le résoudre:

  1. Connectez-vous à MSSQL Server Management Studio avec l'authentification Windows.
  2. Dans l'Explorateur d'objets SQL Server Management Studio, cliquez avec le bouton droit sur le serveur, puis cliquez sur Propriétés.
  3. Sous les propriétés du serveur, sélectionnez une page de "Sécurité".
  4. Sélectionnez l'authentification du serveur en tant que «mode d'authentification SQL Server et Windows» et cliquez sur OK. Propriétés de la base de données de gestion du serveur MSSQL
  5. Redémarrez les services SQL, puis essayez de vous connecter avec les détails «sa».

Source: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/

Emmanuel
la source
12

D'accord, j'ai pu comprendre ce qui se passait (en quelque sorte) et j'ai obtenu une solution de contournement.

Il semble qu'il y a une semaine, ils jouaient avec la politique de sécurité de Windows. Ils ajoutaient / supprimaient des autorisations mais ils ne peuvent pas me donner exactement ce qu'ils ont fait parce qu'ils ne savaient vraiment pas (aïe!).

Quoi qu'il en soit, je me suis connecté à l'aide de l'authentification Windows (commutateur -E) et j'ai exécuté la requête suivante:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

La clé ici est CHECK_POLICY = OFF . Cela a fait l'affaire. J'espère que cela rendra «sa» à l'abri des changements futurs dans la configuration de leur domaine.

Merci pour toutes vos suggestions.

POINTE
la source
6

Choses à vérifier

Mot de passe sur le compte SA

Mode mixte activé

Le compte SA est-il désactivé?

Créez un autre compte SQL et essayez-le (puisque vous pouvez entrer avec -E, vous devriez pouvoir le faire)

Testez en utilisant une connexion ODBC, vous pouvez créer cette connexion pour voir si la SA fonctionne

Oh et toujours attraper tout dans Windows, redémarrez (sérieusement, cela aide mon serveur SQL de test après avoir fait des choses)

SpaceManSpiff
la source
1

J'ai eu ce problème il y a quelques années après avoir installé un Windows ServicePack (pas de mise à jour SQLServer, mais Windows), le SQLServer a refusé les connexions, jusqu'à ce que le SQLServer ServicePack soit également installé! J'ai trouvé un message dans le journal des événements après quelques heures.

Je pense qu'ils l'ont fait, car ils savaient qu'il y avait un gros trou de sécurité et voulaient forcer tous les administrateurs à installer le pack. Cependant, puisque c'est il y a quelque temps, je n'ai pas les versions exactes et ainsi de suite. Je recommanderais, vous vérifiez votre journal des événements et installez tous les Service Packs / plus récents.

Tim Büthe
la source
Cela semble prometteur, je vais l'essayer lundi et je ferai rapport. Merci pour la suggestion.
JAG
Enfin, je n'ai pas essayé d'installer le dernier Service Pack. Voir ma propre «réponse acceptée».
JAG
0

En supposant que Management Studio ou Management Studio Express soit installé, pouvez-vous connecter Management Studio à l'instance à l'aide de sa?

JR

John Rennie
la source
1
SSMS n'est pas installé et je préfère ne pas l'installer si possible. De plus, la connexion à partir d'un autre ordinateur avec SSMS n'est pas une option car il s'agit d'un serveur client. Seuls les outils de ligne de commande sont disponibles.
JAG
Si vous avez Management Studio sur un autre PC, même s'il est à l'extrémité d'un VPN, vous devriez toujours pouvoir vous connecter. Le point est de vérifier s'il y a quelque chose de compliqué avec la configuration du serveur, ou si le problème vient de la commande osql.
John Rennie
0

Avez-vous vérifié que vous avez redémarré le service SQL Server après avoir effectué la modification du Registre?

David Spillett
la source
Je n'ai pas eu besoin de le changer car il avait la valeur correcte.
JAG
0

Quelqu'un a-t-il supprimé la base de données qui était la base de données par défaut pour "sa"?

Si tel est le problème, essayez

EXEC sp_defaultdb 'sa', 'New default database'
splattne
la source
En théorie, il n'y a qu'une seule base de données et elle existe. Je n'ai pas exécuté cette commande cependant.
JAG
Normalement, c'est «maître». Mais je pense que ce n'est pas le problème ...
splattne
Je viens de l'essayer mais cela n'a fait aucune différence. Merci quand même.
JAG
0

Si vous installez SQL Express 2014, vous devrez faire quelques choses pour résoudre cette erreur si vous essayez de vous connecter avec le compte [sa].

  1. Le compte "sa" sera désactivé. Vous devrez donc basculer le compte de désactivé à activé dans la section d'état du compte.

  2. L'authentification Windows et SQL Server doit être activée sur le serveur. Par défaut, seule l'authentification Windows est activée.

  3. Réinitialisez le mot de passe. (voir le code ci-dessous; ServerFault a un bogue où le code ne s'affiche pas de la même manière lors de l'utilisation d'une liste ordonnée au 6/8/2016)

  4. Redémarrez le service Windows pour SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
MacGyver
la source
0

Parfois, la connexion est désactivée en raison de nombreux mots de passe incorrects ou de toute violation de politique. Nous pouvons donc simplement nous connecter avec l'authentification par fenêtre, changer le mot de passe et réactiver la connexion.

Connectez-vous à la base de données avec l'authentification Windows

Exécuter la requête:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

L'utilisation de CHECK_POLICY est requise car elle spécifie que les stratégies de mot de passe Windows de l'ordinateur sur lequel SQL Server s'exécute doivent être appliquées sur cette connexion. La valeur par défaut est ON lorsque nous la désactivons, cela changera le mot de passe sans aucune difficulté. Plus tard, vous pouvez activer

REMARQUE: ce que j'ai observé que lorsque CHECK_POLICY est sur les solutions GUI SSME pour changer le mot de passe ne fonctionnera pas à chaque fois. Je n'ai pas la raison derrière mais que j'ai observée.

Jay Patel
la source
0

Je l'ai résolu comme suit, connectez-vous avec vos propriétés goto d'authentification Windows du serveur >> Sécurité et changez le serveur

Preet Inder Singh
la source
1
Pourriez-vous dépenser davantage pour mettre en forme (et compléter) votre réponse? Comme cela est écrit, n'est pas d'une grande aide.
asdmin