Problem
Der Microsoft SQL Server Express Edition ist sehr praktisch, aber leider nach der Installation auch leicht zu übersehen. Nach einem Domänenwechsel, Domänen-Autritt oder einem Crash (der zum Verlust der Anmeldekonten führte) ist eine SQL-Express-Instanz nicht mehr zugänglich. Standardmäßig sind nur Windows-Anmeldungen erlaubt, die es nun ja nicht mehr gibt.
„Zugriff verweigert“ oder „Access to Database denied“ lauten die Fehlermeldungen dazu.
Lösung
Man kann die Authentifizierung im SQLEE insofern zurücksetzen, als das man sein eigenes Anmeldekonto (sofern administrativ) zum SYSADMIN in der Datenbankinstanz macht. Dann kann mann sich wieder anmelden, die Rechte zurücksetzen und seine Datenbanken richtig konfigurieren.
Dazu muss die Datenbank im „Einzelbenutzermodus“ gestartet werden:
- SQL Server Configuration manager („SQL Server 2014-Konfigurations-Manager“) öffnen
- Links im Baum unter den „SQL Server-Diensten“ rechts den SQL Server auswählen
- Eigenschaften > Startparameter > „-m“ hinzufügen („Add“), ohne Anfürungszeichen
- Dienst neu starten (nun ist die DB im Einzelbenutzermodus)
- Mit SQLCMD zur Instanz verbinden:
C:\> "%ProgramFiles%\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\SQLCMD.EXE" -S .\<INSTANZNAME>
- Am SQL Prompt dann den Admin hinzufügen
1> EXEC sp_addsrvrolemember '<SERVER/DOMAINNAME>\<BENUTZER>', 'sysadmin'
2> GO
1> exit
- Dann den Startparameter „-m“ wieder entfernen, den Dienst neu starten und an der Instanz mit dem gerade hinzugefügten Konto anmelden.
Fertig 🙂