SQL-Server sysadmin Serverrolle als lokaler Administrator
In dieser Anleitung zeige ich wie ein lokaler Administrator-Account die SQL-Server-Rolle „sysadmin“ auf einer SQL-Server-Instanz bekommen kann.
Dies könnte z.B. dann interessant sein, wenn das Passwort vom sa-Benutzer nicht (mehr) bekannt ist. Das ist z.B. der Fall, wenn SQL-Server-Express Edition (von einer Dritthersteller-Anwendung) installiert wurde.
Ist-Zustand
SQL-Server-Express Edition wurde von einer Drittherstellerapplikation installiert und das Passwort für den Benutzer SA wurde verändert und ist unbekannt.
Nun soll noch eine Datenbank auf derselben SQL-Server-Express-Instanz erstellt werden.
Die Standardpasswörter funktionierten nicht
- User: sa
- <blank>
- Password123
- <Passwort vom Admin, der die Anwendung installiert hat>
Voraussetzungen
Ein Benutzerkonto mit den Berechtigungen lokaler Administrator muss auf dem Server vorhanden sein.
Durchführung – SQL-Server sysadmin Serverrolle einem lokalen Admin zuweisen
SQL-Server-Management-Studio installieren
SSMS z.B. von hier runterladen:
Dort dann nur das „SQLManagementStudio_x64_DEU.exe“ runterladen.
Am besten auf demselben Server, wo die SQL-Instanz läuft, das SQL-Server-Management-Studio (evtl. in einer Express-Edition) installieren.
Im Installation Center die Option wählen:
Installation > New installation or add features to an existing instalation > New installation or add shared features > Shared Features
SQL Server Startup Parameters für single-user mode
Die Startparameter des SQL-Dienstes müssen angepasst werden, damit der Dienst im single-user mode startet.
Den SQL Server Configuration Manager öffnen.
Die Eigenschaften der benannten SQL-Server Instanz öffnen.
Reiter „Advanced“ und die Zeile Startup Parameters öffnen.
Am Ende der Zeichenfolge folgende drei Zeichen (Semikolon,Minus,kleinesM) anhängen, damit die SQL-Server-Instanz im single-user mode starten kann.
;-m
Für neuere SQL-Server-Versionen muss man nicht die Zeichenzeile editieren, sondern den Startparameter -m
im Reiter „Startup Parameters“ eintippen.
Eigentlich muss der SQL-Server-Dienst nun neu gestartet werden, damit die Änderungen übernommen werden.
Besser ist es aber, wenn man den SQL-Dienst erst einmal (im SQL Server Configuration Manager) stoppt (und nicht neustartet). Damit nach dem Starten des Dienstes die eigene Anmeldung per SSMS schnell durchgeführt werden kann, bevor sich andere Dienste die Verbindung belegen und so das Anmelden verhindern.
Als lokaler Admin in SSMS anmelden
Nun muss man das SSMS als ein Benutzer öffnen, der auf dem Server als lokaler Administrator berechtigt ist.
Als anderer Benutzer ausführen
Den Benutzer wählen der entweder direkt auf dem Server lokaler Administrator ist, z.B.
.\Administrator
oder über das AD-Konto bzw. über Gruppenmitgliedschaften die Berechtigungen besitzt.
In der Anmeldemaske dann den lokalen SQL-Server in der Zeile „Servername“ auswählen Bsp.:
MeinServer01\SQLINSTANZ
und die Authentifizierung auf „Windows-Authentifizierung“ eingestellt lassen. Das Fenster offen lassen, aber noch nicht Verbinden.
Den SQL-Dienst im SQL Server Configuration Manager wieder starten
und dann ganz schnell (bevor die anderen Dienste die single-user Verbindung belegen) im SSMS auf Verbinden klicken.
Wenn alles geklappt hat, dann hat sich der Benutzer (in dessen Namen wir das SSMS geöffnet haben) mit der SQL-Instanz verbunden und ist im Besitz der sysadmin-Rolle.
Anmeldung erstellen / sicherstellen
Nun sollten wir sicherstellen, dass wir auch nach dem Beenden des single-user mode, den benötigten Zugang zur SQL-Server-Instanz haben.
Dazu unter „Sicherheit“ auf „Anmeldungen“ mit der rechten Maustaste klicken und Neue Anmeldung… erstellen.
Hier kann nun entweder eine „Windows-Authentifizierung“ oder eine „SQL Server-Authentifizierung“ für den eigenen Account und/oder für sonstige Konten erstellt werden.
Falls „SQL Server-Authentifizierung“ benutzt werden soll, dann muss „SQL Server- und Windows-Authentifizierungsmodus“ in den Servereigenschaften (Rechte Maustaste auf die SQL-Server-Instanz > Eigenschaften > Sicherheit > SQL Server- und Windows-Authentifizierungsmodus) eingeschaltet werden.
Je nach Bedarf könnte man nun die benötigten „Serverrollen“ aktivieren (z.B. die Serverrolle „sysadmin“)
Nachdem wir nun unser Konto berechtigt haben, können wir den SQL-Server-Dienst wieder im normalen Modus starten.
SQL Server Startup Parameters für Standard mode
Die Startparameter des SQL-Dienstes müssen angepasst werden, damit der Dienst nicht mehr im single-user mode startet.
Den SQL Server Configuration Manager öffnen.
Die Eigenschaften der benannten SQL-Server Instanz öffnen.
Reiter „Advanced“ und die Zeile Startup Parameters öffnen.
Am Ende der Zeichenfolge folgende drei Zeichen (Semikolon,Minus,kleinesM) löschen, damit die SQL-Server-Instanz nicht mehr im single-user mode startet.
;-m
Für neuere SQL-Server-Versionen muss man nicht die Zeichenzeile editieren, sondern den Startparameter -m
im Reiter „Startup Parameters“ entfernen.
Nach der Änderung muss der SQL-Server-Dienst nur noch einmal neu gestartet werden.
Jetzt sollte sich der eingerichtete Benutzer anmelden können und sollte nach der Anmeldung auch die vergebene Berechtigungen (z.B. sysadmin) besitzen.
Fehler und Lösungen
Login failed for user ‚DOMAIN\User‘. Reason: Server is in single user mode
Verbindung mit Server herstellen
Es kann keine Verbindung mit 'ServerName\InstanzName' hergestellt werden.
------------------------------
ZUSÄTZLICHE INFORMATIONEN:
Login failed for user 'DOMAIN\User'. Reason: Server is in single user mode. Only one administrator can connect at this time. (Microsoft SQL Server, Fehler: 18461)
Lösung
Alle Dienste, die auf die SQL-Instanz zugreifen beenden. Auch den SQL-Agent-Dienst beenden.
Den SQL-Server-Dienst neu starten und sich sehr schnell verbinden, bevor andere Dienste dies tun.
Links
- docs.microsoft.com: Connect to SQL Server When System Administrators Are Locked Out
- superuser.com: Default SA password of SQL Server automatically installed by SharePoint Server 2010 setup
- itproguru.com: How to Fix Login Failed for User (Microsoft SQL Server, Error: 18456) Step-By-Step – Add SQL Administrator to SQL Management Studio
- support.webecs.com: What is the default password for the sa login?