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
- osql -E -s SERVERNAME (mit Leerzeichen nach dem s!), also:
- 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.
Verwandte Beiträge:
- SQL Server Express: Authentisierungsmodus umschalten
SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL Server- und Windows-Authentifizierungsmodus”. Während der erste nur Verbindungen mit bestehenden... - Windows Server 2008 R2: Keine Vertrauensstellung zu NT4 möglich
In Domänen, die unter Windows Server 2008 R2 laufen, ist keine Vertrauensstellung zu Windows NT 4.0 möglich. Das bedeutet, dass... - Warum kann ein Benutzer Dateien ändern, für die er keine Rechte hat?
Benutzer können Dateien löschen, auf die sie keinen Zugriff haben. Das ist das, was als Feature (!) dokumentiert ist, sich... - Wie Hauptbenutzer zu Admins werden
Frage: Kann der Hauptbenutzer das Konto des Administrators löschen oder sein Kennwort ändern? Oder das Konto eines anderen mit Admin-Rechten angelegten Kontos? Antwort:... - DHCP-Server autorisieren ohne Organisations-Admin-Rechte
Um in einer Active-Directory-Umgebung einen auf Windows 2000/2003 basierenden DHCP-Server zu integrieren, muss man Organisationsadministratorrechte besitzen. Gerade in größeren Netzwerken...
http://faq-o-matic.net/?p=2356



Kategorie:
Translate EN

