Kann keine Verbindung zu SQL Server über ein 'sa'-Konto herstellen, was fehlt mir?


19

Ich versuche, mich mit dem folgenden Befehl bei einer SQL Server 2005 Express-Instanz anzumelden:

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

Ich erhalte die Fehlermeldung: Anmeldung für Benutzer 'sa' fehlgeschlagen.

Ich kann mich mit dem -E-Schalter ganz gut verbinden. Ich muss hinzufügen, dass es seit Monaten funktioniert. Ich glaube, jemand hat etwas geändert, aber ich kann nicht herausfinden, was es ist.

Das habe ich versucht:

  • Melden Sie sich mit der Windows-Authentifizierung an und ändern Sie das sa-Kennwort:

    sp_password NULL, newpassword, 'sa'

  • Aktivieren der 'sa'-Anmeldung:

    ALTER LOGIN sa ENABLE; ALTER LOGIN starten sa WITH PASSWORD = 'newpassword'; GEHEN

  • Überprüfte die Windows-Registrierung, um sicherzustellen, dass die gemischte Authentifizierung aktiviert ist. Der Wert war korrekt: LoginMode = 2

Was soll ich noch überprüfen? Danke im Voraus.

ZUSÄTZLICHE INFORMATION:

Dies ist ein Windows 2003 Server. Sie haben einige Kennwortrichtlinien aktiviert. Ich erinnere mich, dass ich das Standardkennwort 'sa' ändern musste, das meine Anwendung verwendet, wenn SQL Server auf einem anderen, komplexeren Server installiert wird.

Ich verbinde über VNC, daher kann ich SSMS nicht wirklich verwenden

Meine Anwendung kann eine Verbindung mit einem anderen SQL Server-Login herstellen, aber kein "sa".

Wenn wir schließlich keine Lösung finden, werde ich diese Instanz entfernen und erneut installieren, aber ich möchte wirklich herausfinden, wo das Problem liegt. Nur für den Fall, dass es wieder passiert und nur aus purer Neugier.

Antworten:


22

Vergessen Sie nicht, wie @SpaceManSpiff sagte, zu überprüfen, ob der gemischte Modus aktiviert ist. Jemand hat diese Einstellung für mich geändert und ich hatte das gleiche Problem. So lösen Sie es:

  1. Melden Sie sich bei MSSQL Server Management Studio mit Windows-Authentifizierung an.
  2. Klicken Sie mit der rechten Maustaste in dem SQL Server Management Studio Object Explorer auf den Server, und klicken Sie dann auf Eigenschaft.
  3. Wählen Sie unter den Servereigenschaften eine Seite mit der Bezeichnung "Sicherheit" aus.
  4. Wählen Sie die Serverauthentifizierung als "SQL Server- und Windows-Authentifizierungsmodus" aus und klicken Sie auf "OK". Eigenschaften der MSSQL Server Management-Datenbank
  5. Starten Sie die SQL Services neu und versuchen Sie dann, sich mit "sa" -Details anzumelden.

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


12

Ok, ich konnte herausfinden, was passiert ist und habe eine Problemumgehung bekommen.

Es scheint , dass vor einer Woche wurden sie spielen mit der Windows - Sicherheitspolitik. Sie haben Berechtigungen hinzugefügt / entfernt, aber sie können mir nicht genau sagen, was sie getan haben, weil sie es wirklich nicht wussten (autsch!).

Wie auch immer, ich habe eine Verbindung über die Windows-Authentifizierung (-E-Schalter) hergestellt und die folgende Abfrage ausgeführt:

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

Der Schlüssel hier ist CHECK_POLICY = OFF . Das war der Trick. Ich hoffe, dies macht sie immun gegen zukünftige Änderungen in ihrer Domain-Einrichtung.

Vielen Dank für alle Ihre Vorschläge.


6

Dinge zu überprüfen

Passwort für SA-Konto

Mixed Mode aktiviert

Ist das SA-Konto deaktiviert?

Erstellen Sie ein anderes SQL-Konto und probieren Sie es aus (da Sie mit -E einsteigen können, könnten Sie dies tun)

Wenn Sie eine ODBC-Verbindung testen, können Sie diese Verbindung erstellen, um festzustellen, ob die SA funktioniert

Ach ja und das immer alles in Windows abfangen, neustarten (im Ernst, das hilft meinem SQL Server beim Testen, nachdem ich Sachen dran gemacht habe)


1

Ich hatte dieses Problem vor einigen Jahren nach der Installation eines Windows ServicePacks (kein SQLServer Update, sondern Windows), der SQLServer lehnte Verbindungen ab, bis auch das SQLServer ServicePack installiert wurde! Ich habe nach einigen Stunden eine Nachricht im Eventlog gefunden.

Ich denke, sie haben dies getan, weil sie wussten, dass es eine große Sicherheitslücke gibt, und alle Administratoren dazu zwingen wollten, das Paket zu installieren. Da es jedoch schon einige Zeit her ist, kenne ich nicht die genauen Versionen und so weiter. Ich würde empfehlen, dass Sie Ihr Ereignisprotokoll überprüfen und alle / neuesten Service Packs installieren.


Das sieht vielversprechend aus, ich versuche es am Montag und melde mich zurück. Danke für den Vorschlag.
JAG

Schließlich habe ich nicht versucht, das neueste Service Pack zu installieren. Siehe meine eigene "akzeptierte Antwort".
JAG

0

Angenommen, Sie haben Management Studio oder Management Studio Express installiert. Können Sie das Management Studio mit sa mit der Instanz verbinden?

JR


1
SSMS ist nicht installiert und ich würde es vorziehen, wenn möglich, nicht zu installieren. Eine Verbindung von einem anderen Computer mit SSMS ist ebenfalls nicht möglich, da dies ein Kundenserver ist. Es sind nur die Befehlszeilentools verfügbar.
JAG

Wenn Sie das Management Studio auf einem anderen PC haben, sollten Sie auch dann eine Verbindung herstellen können, wenn sich das Studio am anderen Ende eines VPN befindet. Der Punkt ist, zu überprüfen, ob etwas mit dem Server-Setup zu tun hat oder ob das Problem mit dem Befehl osql zusammenhängt.
John Rennie

0

Haben Sie sichergestellt, dass Sie den SQL Server-Dienst neu gestartet haben, nachdem Sie die Registrierungsänderung vorgenommen haben?


Musste es nicht ändern, weil es den richtigen Wert hatte.
JAG

0

Hat jemand die Datenbank entfernt, die die Standarddatenbank für "sa" war?

Wenn dies das Problem ist, versuchen Sie es

EXEC sp_defaultdb 'sa', 'New default database'

Theoretisch gibt es nur eine Datenbank und diese existiert. Ich habe diesen Befehl jedoch nicht ausgeführt.
JAG

Normalerweise ist es "Meister". Aber ich denke, das ist nicht das Problem ...
Splattne

Ich habe es gerade versucht, aber keinen Unterschied gemacht. Danke trotzdem.
JAG

0

Wenn Sie SQL Express 2014 installieren, müssen Sie einige Maßnahmen ergreifen, um diesen Fehler zu beheben, wenn Sie versuchen, sich mit dem Konto [sa] anzumelden.

  1. Das "sa" Konto wird deaktiviert. Daher müssen Sie das Konto im Statusbereich des Kontos von deaktiviert auf aktiviert umschalten.

  2. Auf dem Server muss die Windows- und SQL Server-Authentifizierung aktiviert sein. Standardmäßig ist nur die Windows-Authentifizierung aktiviert.

  3. Setzen Sie das Passwort zurück. (siehe Code unten; ServerFault hat einen Fehler, bei dem der Code bei Verwendung einer geordneten Liste ab dem 08.06.2016 nicht gleich angezeigt wird.)

  4. Starten Sie den Windows-Dienst für SQL Server neu

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

Manchmal ist die Anmeldung aufgrund vieler falscher Passwörter oder Verstößen gegen Richtlinien deaktiviert. Sie müssen sich also nur mit Fensterauthentifizierung anmelden, das Kennwort ändern und die Anmeldung erneut aktivieren.

Melden Sie sich mit Windows-Authentifizierung bei der Datenbank an

Abfrage ausführen:

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

Die Verwendung von CHECK_POLICY ist erforderlich, da hier angegeben wird, dass die Windows-Kennwortrichtlinien des Computers, auf dem SQL Server ausgeführt wird, bei dieser Anmeldung erzwungen werden sollen. Die Standardeinstellung ist EIN, wenn wir AUS schalten, wird das Passwort ohne Schwierigkeiten geändert. Später können Sie EIN

ANMERKUNG: Was ich beobachtet habe, wenn CHECK_POLICY auf der GUI angezeigt wird, funktionieren SSME-Lösungen zum Ändern des Kennworts nicht jedes Mal. Ich weiß nicht, warum, aber ich habe beobachtet.


0

Ich habe es wie folgt gelöst Anmeldung mit Ihrer Windows-Authentifizierung gehe zu Eigenschaften des Servers >> Sicherheit und ändere die Server-Authentifizierung


1
Könnten Sie bitte mehr für das Formatieren (und Vervollständigen) Ihrer Antwort ausgeben? Wie dies geschrieben steht, hilft nicht viel.
1.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.