Wenn man bei der Installation von SQL Server 2008 auf das Festlegen eines Sysadmins vergisst, steht man ohne Admin-Berechtigungen da. Unter http://www.faq-o-matic.net/2010/05/21/s ... in-rechte/ findet man eine Lösung zu diesem ärgerlichen Problem.
Die Lösung besteht darin, SQL Server zu stoppen und als lokaler Admin über die Kommandozeile (welche als Administrator auszuführen ist!) mit dem Schalter -m im Einzelbenutzermodus zu starten, wo lokale Admins auch wirklich Admin-Rechte haben:
cd C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn
sqlservr.exe -m -sSQLEXPRESS -t 7806
Anschließend kann man das SQL Management Studio starten und den eigenen Windows-Benutzer unter Sicherheit (Security) hinzufügen sowie die Rolle sysadmin zuweisen.
Danach wird der über die Konsole gestartete Server beendet (STRG + C) und wieder als Dienst gestartet. Fertig!
Alternativ zur Verwendung von SQL Management Studio kann man eine neue Kommandozeile (wieder als Admin!) starten und sich mit OSQL (z. B. osql -E -sMyServer\SQLEXPRESS) zum Server verbinden und Benutzer anlegen sowie diese zu Sysadmins machen:
CREATE LOGIN [DOMAIN\Username] FROM WINDOWS
go
exec sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin'
go
Ich hatte dabei zwei Probleme, die ich wie folgt gelöst habe:
- Ich konnte mich mit OSQL nicht via TCP verbinden, also habe ich TCP einfach im SQL Server Configuration Manager (Start Menü | SQL Server | Configuration) deaktiviert.
- Beim Start des Servers mit der Option -m habe ich die Info bekommen, dass ich einen bestimmten Tracelevel verwenden muss. Somit habe ich den Server mit -m -t TRACELEVEL gestartet, wobei TRACELEVEL der Nummer aus der Meldung entspricht.