Ende Juli veröffentlichte Microsoft eine Beschreibung, wie man sich mit ansonsten abgeschotteten SQL-Servern verbinden kann. Voraussetzung dazu ist, dass man den Dienst stoppen/starten kann. Dazu muss man lediglich den Startparameter "-m" anfügen.
Das kann man natürlich wie beschrieben über die Registry machen, aber das ist ja nicht wirklich spaßig. Ich würde das Werkzeug SQL Server Configuration Manager"" (Aufruf über "Startmenü\Alle Programme\Microsoft SQL Server 2005\Configuration Tools\SQL Server Configuration Manager" oder mittels Start\Ausführen "SQLServerManager.msc"): Dort unter Eigenschaften des SQL-Server-Dienstes im Reiter "Advanced" im Eintrag "Startup Parameters" unten noch "-m" hinzufügen. Dann den Dienst einfach neu starten.
Man kann das auch gerne direkt unter "Start\Ausführen" machen:
"c:\Programme\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe" -sMyYukon -m -c
Jetzt kann man sich ganz einfach mittels der Windows-Authentifizierung zu dem SQL-Server verbinden und das vergessene SA-Passwort zurücksetzen oder andere schöne Dinge tun. Denn man hat nun Adminrechte. Am Ende darf an nicht vergessen den Parameter "-m" wieder zu entfernen, sonst hat man den ansonsten lästigen Single-User-Mode immer…
Wenigstens gibt es eine Einschränkung: Für diese Methode benötigt man Admin-Rechte an den betreffenden Rechner. Offensichtlich geht Microsoft davon aus, dass der Windows-Admin auch Administrator des SQL-Servers ist.
Weitere Details stehen im KB-Artikel 937682 "How to add a Windows user to the sysadmin fixed server role in SQL Server 2005 as a failure recovery mechanism"
Vielen Dank an Spencer Tracy, der das sogar schon am Tag vor meinem Urlaub als Kommentar postete.