Benutzer mit den meisten Antworten
sa Passwort vergessen, Windows Administrator deaktiviert - keine Anmeldung am SQL Server 2008 möglich

Frage
-
Hallo SQL Profis,
ich möchte folgende Anforderung lösen:
SQL Server 2008 auf einem dedizierten Windows Server 2008.
Das Administratorenkonto (Anmeldename) ist im SQL-RDBMS deaktiviert und die Berechtigung zum Herstellen einer Verbindung mit Datenbankmodul - wird Verweigert, lokal auf dem Windows-Server hat der Admin volle Zugriffsrechte.
Das Passwort des "sa" ist vergessen, er ist aber aktiv und könnte Verbindung zum Server herstellen.
Weitere Benutzer (Anmeldenamen) gibt es auf dem SQL Server nicht.
Der gemischte Modus zur Benutze-Authentifizierung auf dem SQL Server ist aktiv.
Bei SQL 2005 konnte ich folgende Wege nutzen:
"osql -E sa" ausführen
sp_password @old = null, @new= 'PASSWORT' , @loginame = 'sa' eingeben
danach hatte ich wieder das Recht als sa.
Das funktionierte als lokaler Administrator, an der lokalen Maschine.
Wie erhalte ich unter SQL 2008 wieder Zugriff als sa?
Anlegen eines neuen Users und hinzufügen dieses Users zur Admingruppe reicht nicht, da er kein Anmeldenamen auf dem SQL Server hat.
[>sqlcmd -S Server -E --> Ergebnis: Meldung 18456, Ebene 14, Status 1 - Fehler - Server\Hilfsadmin wird nicht akzeptiert.]
Viele Grüße
Gerold Hoyer
Antworten
-
Hallo Gerold,
vielleicht hilft Dir ja mein Blogartikel siehe Link:
http://mk-space-blog.spaces.live.com/blog/cns!2BAF8BC96E3F7F4!218.entry
Da habe ich den gesamten Vorgang beschrieben.
Gruß
Mario- Als Antwort vorgeschlagen Elmar Boye Dienstag, 4. August 2009 16:45
- Als Antwort markiert Andrei Talmaciu Dienstag, 18. August 2009 08:14
Alle Antworten
-
Hallo Gerold,
Wenn Du ausser "sa" kein Konto mehr in der sysadmin Rolle hast, so kannst Du den SQL Server
von der Kommandozeile im Einzelplatz-Modus starten - dazu mußt allerdings den Dienst stoppen
(womit alle Benutzer aus dem SQL Server geworfen werden).
Dann kannst ein Konto der sysadmin Rolle hinzufügen bzw. das Kennwort zurücksetzen.
Paul Garcia beschreibt dies für SQL Server 2005:
http://blogs.msdn.com/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx
das sollte auch bei SQL Server 2008 funktionieren.
Was das Zurücksetzen von Kennwörtern für Standardkonten via sp_password angeht:
Nur ein Konto in der sysadmin (oder securityadmin) Rolle kann sp_password für ein anderes
Konto verwenden, ohne das alte Kennwort anzugeben.
Bei SQL Server 2008 sind die lokalen Administratoren nicht mehr automatisch Mitglied,
siehe die Sicherheitsänderungen in SQL Server 2008
Grundsätzlich nützlich ist ein dediziertes Domänen-Konto - das muß (sollte) nicht Administrator sein -
in der sysadmin Rolle zu haben, denn dort ist die Kennwortverwaltung über das Active Directory
möglich (ausgenommen ihr traut euren Administratoren nicht ;-).
Ab SQL Server 2008 solltest Du ALTER LOGIN verwenden, da die neuen Befehle mehr ermöglichen
und die alten Sicherheitsprozeduren in künftigen Versionen entfallen werden.
Und ich denke, für die Zukunft wirst Du beherzigen: Wichtige Kennwörter gehören in den Tresor -
schließlich kann mal jemand im Urlaub oder krank sein etc.
Gruß Elmar
-
Hallo Elmar,
danke für die schnelle Antwort am Wochenende.
sqlcmd nutzt Windows-Authentifizierung und der Administrator ist im SQL Server gesperrt. So kann er sich nicht anmelden.
Dieser Weg funktioniert also nicht.
Meine Idee einer Lösung ist das Passwort des sa einfach überschreiben, nur wie?
Gibt es so einen Weg?
Grüße Gerold -
Hallo Gerold,
da liegen einige Mißverständnisse vor:
SQLCMD unterstützt wie alle anderen SQL Server Anwendungen sowohl Windows-
als auch Standard (SQL Server) Authentifizierung (Parameter -U -P).
Du kannst das Kennwort eines Kontos nicht "überschreiben", wenn Du dafür keine Rechte hast!
Ausgenommen "sa" ist bei einer Standard-Installation kein weiteres Konto in der "sysadmin" Serverrolle.
Wer dort drin ist, sagt Dir
EXEC sp_helpsrvrolemember 'sysadmin'
Und am Ende gibt es ggf. nur den (mühsameren) Weg über den Einzelbenutzermodus mit
einem (neuen) Mitglied der lokalen Administrator-Gruppe zu gehen, wie es Paul Garcia beschreibt.
Dort wird der SQL Server "im Sicherheitskontext des Benutzers ausgeführt".
Du erzeugst Dir am besten ein berechtiges Standard-Konto, wie z. B.
CREATE LOGIN SqlAdmin WITH PASSWORD = 'BitteEinRichtigKompliziertesKennwort' -- !!! Kennwort ändern !!! , DEFAULT_DATABASE = master , DEFAULT_LANGUAGE = german , CHECK_EXPIRATION = OFF , CHECK_POLICY = ON GO EXEC sp_addsrvrolemember 'SqlAdmin', 'sysadmin'; GO
Danach kannst Du den SQL Server wieder im normalen Modus starten
und Deine Änderung gewohnt via SSMS etc. vornehmen.
Am Ende das Konto löschen, wenn Du es nicht beibehalten willst.
Gruß Elmar -
Hallo Gerold,
vielleicht hilft Dir ja mein Blogartikel siehe Link:
http://mk-space-blog.spaces.live.com/blog/cns!2BAF8BC96E3F7F4!218.entry
Da habe ich den gesamten Vorgang beschrieben.
Gruß
Mario- Als Antwort vorgeschlagen Elmar Boye Dienstag, 4. August 2009 16:45
- Als Antwort markiert Andrei Talmaciu Dienstag, 18. August 2009 08:14
-
Hallo Mario,
gratuliere, das hast sehr schön aufbereitet.
Gruß Elmar
Hinweis: Der Link für den Blog-Artikel hat sich geändert
- Bearbeitet Elmar Boye Donnerstag, 14. Februar 2013 18:08 Hinweis geänderter Link
-
hi Peter,
ohne (lokalen) Windows Administrator geht es nicht. Ansonsten DAC:
http://msdn.microsoft.com/en-us/library/ms178068.aspx
Microsoft MVP Office Access
https://mvp.support.microsoft.com/profile/Stefan.Hoffmann