none
sa Passwort vergessen, Windows Administrator deaktiviert - keine Anmeldung am SQL Server 2008 möglich RRS feed

  • 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
    Samstag, 1. August 2009 10:55

Antworten

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

    Samstag, 1. August 2009 18:51
  • 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
    Sonntag, 2. August 2009 20:06
  • 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
    Montag, 3. August 2009 09:02
  • 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
    Dienstag, 4. August 2009 14:44
  • Hallo Mario,

    gratuliere, das hast sehr schön aufbereitet.

    Gruß Elmar

    Hinweis: Der Link für den Blog-Artikel hat sich geändert

    http://mariosharepointblog.wordpress.com/2009/07/22/was-tun-wenn-systemadministratoren-auf-einen-sql-2008-gesperrt-oder-geloscht-sind/


    • Bearbeitet Elmar Boye Donnerstag, 14. Februar 2013 18:08 Hinweis geänderter Link
    Dienstag, 4. August 2009 16:45
  • Hallo Elmar,

    danke für die Anleitung.

    Am Wochenende werde ich testen.

    Viele Grüße
    Gerold
    Mittwoch, 5. August 2009 19:12
  • Hallo Mario,

    super Anleitung - ich teste am Wochenende.

    Grüße Gerold
    Mittwoch, 5. August 2009 19:13
  • Vielen Dank Mario für diesen Eintrag, hat mir seeeeeehr geholfen eben!

    Gruß
    Fritz
    Montag, 28. September 2009 20:59
  • Hallo

    bin leider nuir anwender und habe mein laptop lange nicht benutzt, daher habe ich das passwort vergessen,

    können sie mir sagen wo ich diese schritte eingeben muss

    ich bedanke mich im voraus

    mfg peter

    Mittwoch, 12. Januar 2011 01:06
  • 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
    Mittwoch, 12. Januar 2011 09:33