Ich habe das sa-Kennwort auf einem Computer verloren. Wenn ich mich direkt über ein Konto in der Administratorgruppe am Computer anmelde, kann ich mich mit SQL Server Management Studio nicht mit Windows-Authentifizierung anmelden.
Mein Plan war, 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 sonst das sa-Passwort zurücksetzen?
security
sql-server-2000
Daniel Williams
quelle
quelle
Antworten:
Sie können die im folgenden Link genannten Schritte ausführen, um das SA-Kennwort zurückzusetzen:
Schritte im Folgenden zusammengefasst:
Zusätzliche Ressourcen:
Letztendlich können Sie die Datenbankdateien jederzeit in eine andere Instanz kopieren oder SQL Server neu installieren (dabei ein lokales Konto als Sysadmin hinzufügen).
quelle
Was Sie tun, hängt von Ihrer SQL Server-Version ab sowie davon, ob Sie es sich leisten können, den SQL Server-Dienst herunterzufahren, um neue Anmeldeinformationen einzurichten. Die ersten beiden Methoden erfordern keinen Neustart der Instanz:
Für SQL Server 2005-, 2008- und 2008 R2-Instanzen
Sie können über das
NT AUTHORITY\SYSTEM
Konto (oder andere Backdoor-Methoden) eine Verbindung herstellen. Einige Antworten enthalten einige Details:Ich habe auch einen Tipp auf MSSQLTips.com , der dieses Problem behebt :
Im Wesentlichen laden Sie PSExec von Microsoft herunter und starten dann Management Studio, sobald Sie es installiert haben:
Dadurch wird die Verbindung hergestellt,
NT AUTHORITY\SYSTEM
und Sie können folgende Aufgaben im Objekt-Explorer ausführen:Ä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 derzeit nur Windows ausgewählt ist:
Legen Sie das Kennwort für das
sa
Konto fest - erweitern Sie Sicherheit, erweitern Sie Anmeldungen, klicken Sie mit der rechten Maustastesa
und klicken Sie auf Eigenschaften. Im daraufhin angezeigten Dialogfeld werden zwei Kennworteingabefelder angezeigt:Fügen Sie Ihr eigenes Login hinzu als
sysadmin
- Klicken Sie mit der rechten Maustaste auf Logins, New Login ... Geben Sie Ihren Login-Namen (im FormularDOMAIN\username
) ein, wechseln Sie zur Registerkarte Server Roles und aktivieren Sie das Kontrollkästchensysadmin
und klicken Sie auf OK:(Wenn Ihr Login bereits aufgeführt ist, klicken Sie mit der rechten Maustaste auf Eigenschaften und vergewissern Sie
sysadmin
sich, dass unter Serverrollen das Kontrollkästchen aktiviert ist.)Für SQL Server 2012 und neuere Instanzen
Ab SQL Server 2012 wurden
NT Authority\SYSTEM
standardmäßig keine Rechte mehr an SQL Server vergeben. Eine weitere Möglichkeit, dies in diesen neueren Versionen zu tun, wurde von Argenis Fernandez beschrieben :Öffnen Sie
regedit.exe
und ändern Sie den Wert vonHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SQLWriter\ImagePath
, um auf zu zeigenSQLCMD.exe
, was in sein wirdC:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\**<...110|120|130|140...>**\Tools\Binn
. Nach der Bearbeitung sollte der Registrierungswert wie folgt aussehen (Entschuldigung für das Scrollen):Versuchen Sie, den SQL VSS Writer-Dienst erneut zu starten (es wird eine Fehlermeldung angezeigt; das ist in Ordnung).
Sie sollten nun in der Lage sein, eine Verbindung mit
sysadmin
herzustellenYourDomain\YourUserName
. Beenden Sie daher den SQL VSS Writer-Dienst, korrigieren Sie die Registrierung und starten Sie den Dienst neu (wenn er ausgeführt werden muss oder wenn er ausgeführt wurde, bevor Sie ihn gestartet haben).Ich habe dies in einem zweiten Tipp ausführlicher erläutert:
Obwohl , wenn ich diesen Tipp habe ich verwendet , um einen umständlichen Ansatz zur Herstellung einer Kopie
SQLCMD.exe
und ersetzensqlwriter.exe
- viel einfacher, nur den Dienst verweist aufSQLCMD.exe
direkt.Wenn Sie es sich leisten können, den SQL Server-Dienst herunterzufahren
Es gibt einen offiziell unterstützten Pfad von Microsoft, für den ein Neustart der Instanz im Einzelbenutzermodus erforderlich ist:
In dbatools.io , einer Powershell-Lösung zum Verwalten von SQL Server, gibt es auch eine Funktion 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 Methoden zum Wiederherstellen des Zugriffs auf eine Instanz von SQL Server, deren Eigentümer Sie zu Recht sind. 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 in Konflikt geraten, sollten Sie sie nicht zu Administratoren machen.
quelle