Logo faq-o-matic.net
Logo faq-o-matic.net

SQL Server 2008: Admins haben keine sysadmin-Rechte

von veröffentlicht am21. Mai 2010, 14:05 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Sicherheit, SQL Server   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 26. Dezember 2010

Mit SQL Server 2008 hat Microsoft das Sicherheitsmodell seines Datenbankservers geändert. Anders als zuvor, sind lokale Administratoren des Servers nun nicht mehr automatisch Mitglieder der Rolle “sysadmin”. Stattdessen muss man nun beim Setup des Servers einen SQL-Admin definieren. Das Problem dabei: Man kann diesen Punkt auch übergehen – und hat im Effekt keinen SQL-Admin …

Es gibt aber eine Lösung dafür, die ich hier gefunden habe:

[SQL Server 2008: Forgot to add an administrator account? – Chris Randall’s SQL Blog – AmeriTeach Instructor Blogs]
http://blogs.ameriteach.com/chris-randall/2009/12/11/sql-server-2008-forgot-to-add-an-administrator-account.html?lastPage=true&postSubmitted=true

Weiteres Problem: Das Ganze funktionierte nicht mit einer Installation von SQL Server Express. Ich habe aber rausgefunden, warum, daher hier noch einmal die wesentlichen Schritte.

  • Anmelden am Server mit einem lokalen Administrator.
  • Aufrufen eines CMD-Fensters als Administrator (!).
  • Beenden des SQL-Server-Dienstes:
    net stop MSSQLServer
    Für SQL Express: net stop MSSQL$SQLEXPRESS
  • Wechseln in das BINN-Verzeichnis der Installation
    z.B.: cd C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn
  • Starten des SQL-Server-Binary mit der Option -m für den Einzelbenutzermodus – dort hat der lokale Admin dann Adminrechte …
    • Wichtig: In früheren Versionen konnte man auch den Dienst mit dem Schalter -m starten – das geht nun nicht mehr!
    • sqlserv.exe -m
    • Für SQL Express muss man die Instanz angeben, also: sqlserv.exe -m -sSQLEXPRESS
    • Nun gibt der SQL Server viele, viele Zeilen aus. Das ist okay.
    • Wichtig: Dieses CMD-Fenster nicht schließen! Stattdessen ein neues öffnen!
  • In dem neuen CMD-Fenster (als Administrator gestartet!) eingeben (nur den fetten Text):
    • osql -E -s SERVERNAME (mit Leerzeichen nach dem s!), also:
      osql -E -s MeinServer
      Für SQL Express: osql -E -s MeinServer\SQLEXPRESS
    • 1> CREATE LOGIN [DOM\Username] FROM WINDOWS
    • 2> go
    • 1> exec sp_addsrvrolemember ‚DOM\Username‘, ’sysadmin‘
    • 2> go
    • 1> exec sp_helpsrvrolemember ’sysadmin‘
    • 2> go
    • (nun sollte in der Ausgabe der eben zugewiesene Windows-Account erscheinen)
    • 1> quit
  • Nun in dem anderen CMD-Fenster Strg-C drücken und die Nachfrage mit “y” beantworten.
  • Den SQL Server neu starten:
    net start MSSQLServer
    bzw. net start MSSQL$SQLEXPRESS
  • Fertig. Nun sollte ein Login mit diesem Account glücken und über SQL-Adminrechte verfügen.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!