it-swarm.com.de

Wie setzen Sie das sa-Passwort zurück?

Ich habe das sa-Kennwort auf einem Computer verloren. Wenn ich mich direkt mit einem Konto in der Administratorgruppe am Computer anmelde, kann ich mich mit SQL Server Management Studio nicht mit der Windows-Authentifizierung anmelden.

Mein Plan war es, mich einfach beim Server anzumelden, eine Verbindung über die Windows-Authentifizierung herzustellen und sa zurückzusetzen, um ein neues Kennwort zu verwenden. Da ich keine Verbindung über die Windows-Authentifizierung herstellen kann, funktioniert dies nicht.

Wie kann ich das sa-Passwort sonst zurücksetzen?

22
Daniel Williams

Sie können die im folgenden Link genannten Schritte ausführen, um das Kennwort SA) zurückzusetzen:

Nachfolgend zusammengefasste Schritte:

  1. Öffnen Sie SQL Server Configuration Manager über Startmenü> Programme> Microsoft SQL Server 20xx> Konfigurationstools>, das für die neueste Version von SQL Server relevant ist, die Sie installiert haben (z. B. wenn Sie 2005 und 2012 installiert haben, verwenden Sie die Version 2012). Sie haben noch kein Startmenü? Geben Sie auf dem Startbildschirm von Windows 8 SQL Server Con ... ein, bis es angezeigt wird.
  2. Beenden Sie die SQL Server-Instanz, die Sie wiederherstellen müssen, indem Sie mit der rechten Maustaste auf die Instanz in SQL Server Services klicken und "Stop" auswählen.
  3. Klicken Sie mit der rechten Maustaste auf die Instanz, die Sie gerade gestoppt haben, klicken Sie auf Eigenschaften, und fügen Sie auf der Registerkarte "Erweitert" im Textfeld Eigenschaften am Ende der Liste in der Option "Startparameter" "; –m" hinzu (bei neueren Versionen auch Sie) Sie können direkt zur Registerkarte "Startparameter" wechseln, "-m" eingeben und auf "Hinzufügen" klicken, ohne sich um die Syntax, das Semikolon oder andere Elemente kümmern zu müssen.
  4. Klicken Sie auf die Schaltfläche "OK" und starten Sie die SQL Server-Instanz neu
  5. Nachdem die SQL Server-Instanz im Einzelbenutzermodus gestartet wurde, kann das Windows-Administratorkonto mithilfe des Dienstprogramms sqlcmd mithilfe der Windows-Authentifizierung eine Verbindung zu SQL Server herstellen. Sie können Transact-SQL-Befehle wie "sp_addsrvrolemember" verwenden, um der Sysadmin-Serverrolle eine vorhandene (oder eine neu erstellte) Anmeldung hinzuzufügen.

Im folgenden Beispiel wird der Sysadmin-Rolle das Konto "Buck" in der Domäne "CONTOSO" hinzugefügt:

EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';

Nachdem der Systemadministratorzugriff wiederhergestellt wurde, entfernen Sie das "; -m" mithilfe des Konfigurationsmanagers aus den Startparametern und starten Sie die SQL Server-Instanz erneut.

HINWEIS: Stellen Sie sicher, dass zwischen ";" kein Leerzeichen steht. und "-m", der Registrierungsparameter-Parser reagiert empfindlich auf solche Tippfehler. In der SQL Server-Datei ERRORLOG sollte ein Eintrag angezeigt werden, der besagt, dass SQL Server im Einzelbenutzermodus gestartet wurde.


Zusätzliche Ressourcen:

Letztendlich können Sie die Datenbankdateien jederzeit auf eine andere Instanz kopieren oder sogar SQL Server neu installieren (während dieses Vorgangs ein lokales Konto als Systemadministrator hinzufügen).

10

Was Sie tun, hängt von Ihrer SQL Server-Version ab und davon, ob Sie es sich leisten können, den SQL Server-Dienst herunterzufahren, um neue Anmeldeinformationen einzurichten. Die ersten beiden Methoden erfordern hier keinen Neustart der Instanz:


Für SQL Server 2005-, 2008- und 2008 R2-Instanzen

Sie können eine Verbindung mit dem Konto NT AUTHORITY\SYSTEM (Oder anderen Backdoor-Methoden) herstellen. In einigen Antworten finden Sie einige Details:

Ich habe auch einen Tipp zu MSSQLTips.com , der dieses Problem behebt:

Im Wesentlichen laden Sie PSExec von Microsoft herunter und starten damit Management Studio, sobald Sie es installiert haben:

PsExec -s -i "C:\...\Ssms.exe"

Dies wird als NT AUTHORITY\SYSTEM Verbunden und ermöglicht es Ihnen, Dinge im Objekt-Explorer zu tun, wie:

  • Ändern Sie die Instanz in den SQL Server- und Windows-Authentifizierungsmodus - klicken Sie mit der rechten Maustaste auf den Servernamen, klicken Sie auf Eigenschaften und ändern Sie das Optionsfeld, wenn es derzeit auf Windows eingestellt ist nur:

    enter image description here

  • Legen Sie das Passwort für das Konto sa fest - erweitern Sie Sicherheit, erweitern Sie Anmeldungen, klicken Sie mit der rechten Maustaste auf sa und klicken Sie auf Eigenschaften. Im daraufhin angezeigten Dialogfeld werden zwei Passworteingabefelder angezeigt:

    enter image description here

  • Fügen Sie Ihr eigenes Login als sysadmin hinzu - klicken Sie mit der rechten Maustaste auf Logins, New Login ... geben Sie Ihren Login-Namen ein (im Formular DOMAIN\username) Wechseln Sie dann zur Registerkarte Serverrollen, aktivieren Sie das Kontrollkästchen sysadmin und klicken Sie auf OK:

    enter image description here

  • (Wenn Ihre Anmeldung bereits aufgeführt ist, klicken Sie mit der rechten Maustaste auf Eigenschaften, und stellen Sie sicher, dass sysadmin unter Serverrollen aktiviert ist.)


Für SQL Server 2012 und neuere Instanzen

Ab SQL Server 2012 wurden NT Authority\SYSTEM Standardmäßig keine Rechte mehr für SQL Server erteilt. Ein anderer Weg, dies in diesen neueren Versionen zu tun, war detailliert von Argenis Fernandez :

  1. Wenn der SQL VSS Writer-Dienst ausgeführt wird, beenden Sie ihn und setzen Sie alle Wartungspläne oder Sicherungssoftware von Drittanbietern aus, die möglicherweise darauf angewiesen sind.
  2. Öffnen Sie regedit.exe Und ändern Sie den Wert von HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath In SQLCMD.exe, Der sich in C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn befindet. Nach dem Bearbeiten sollte der Registrierungswert ungefähr so ​​aussehen (Entschuldigung für das Scrollen):

    "C:Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.exe" -S .\instancename -E -Q "ALTER ROLE sysadmin ADD MEMBER [YourDomain\YourUserName];"
    
  3. Versuchen Sie erneut, den SQL VSS Writer-Dienst zu starten (es wird eine Fehlermeldung angezeigt; das ist in Ordnung).

  4. Sie sollten jetzt in der Lage sein, mit YourDomain\YourUserName Eine Verbindung als sysadmin herzustellen. Beenden Sie also den SQL VSS Writer-Dienst, korrigieren Sie die Registrierung und starten Sie den Dienst neu (wenn Sie ihn ausführen müssen oder wenn er ausgeführt wurde, bevor Sie ihn gestartet haben).

Ich habe dies in einem zweiten Tipp ausführlicher behandelt:

Als ich diesen Tipp schrieb, benutzte ich einen umständlicheren Ansatz, eine Kopie von SQLCMD.exe Zu erstellen und sqlwriter.exe Zu ersetzen - viel einfacher, den Dienst direkt auf SQLCMD.exe Zu richten.


Wenn Sie es sich leisten können, den SQL Server-Dienst herunterzufahren

Es gibt einen offiziell unterstützten Pfad von Microsoft, für den die Instanz im Einzelbenutzermodus neu gestartet werden muss:

Es gibt auch eine Funktion in dbatools.io , einer Powershell-Lösung zum Verwalten von SQL Server mit dem Namen Reset-DbaAdmin:


Sicherheit ist hier nicht das Hauptproblem

Ich sehe viele Leute, die Microsoft auffordern, diese sogenannten "Schwachstellen" zu "beheben". Dies sind gültige Ansätze zum Wiederherstellen des Zugriffs auf eine Instanz von SQL Server, die Sie zu Recht besitzen. Sie alle erfordern erhöhte Berechtigungen auf dem physischen Host, auf dem sich SQL Server befindet. Wenn Sie nicht möchten, dass Entwickler mit SQL Server-Installationen herumspielen, machen Sie sie nicht zu Administratoren.

9
Aaron Bertrand