Ich habe es geschafft (in 'experimenten'), meine beiden Windows-Benutzer aus meiner SQL Express-Instanz zu entfernen. Ich bin jetzt als Windows-Administrator angemeldet und habe den entsprechenden SQL-Login neu erstellt, kann aber keine Sysadmin-Rechte zuweisen. Ich erhalte die Fehlermeldung:
Der Benutzer ist nicht berechtigt, diese Aktion auszuführen. (Microsoft SQL Server, Fehler: 15247)
Wenn der Administrator dazu nicht in der Lage ist, sollte ich dann nach einem kleinen Tier suchen, das ich opfern kann?
Antwort1
Möglicherweise verfügt Ihr Windows-Administratorkonto nicht über Administratorrechte. Dies hängt von Ihren Einstellungen ab. Sie müssen sich mit einem Konto anmelden, das über die entsprechenden Rechte verfügt, oder sich als SA-Benutzer anmelden.
Wenn Sie die SQL-Authentifizierung nicht aktiviert haben, können Sie sie mit einer Registrierungsanpassung aktivieren. Ich denke, dies ist der richtige Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode
Es sollte auf den gemischten Modus (2) eingestellt sein, aber Sie müssen natürlich trotzdem wissen, wie das SA-Passwort lautete, als Sie die Instanz installiert haben.
Antwort2
Auf CodePlex gibt es ein Skript, das die Wiederherstellung nach dem Verlust der Sysadmin-Rechte für Ihre lokale SQL Server-Instanz automatisiert, vorausgesetzt, Sie haben Zugriff auf ein Windows-Administratorkonto:
Antwort3
Aktualisieren Sie die Startberechtigungen des Dienstes der SQL Server-Instanz, sodass sie „-m“ oder „-m"Microsoft SQL Server Management Studio – Query" einschließen, wenn Sie SSMS lieber als sqlcmd/osql verwenden möchten.
Verwenden Sie dann diesen Befehl, um eine Verbindung über eine Befehlszeile herzustellen:
sqlcmd -E -S HOSTNAME\INSTANCENAME
Oder stellen Sie eine Verbindung über SSMS her mit:
\\.\pipe\hostname\instancename\sql\query
Und verwenden Sie dies, um Ihren Login und Ihre Rolle hinzuzufügen:
CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO
Anschließend können Sie die Option „-m“ für den Dienst entfernen und ihn normal starten.
Sehenhttp://msdn.microsoft.com/en-us/library/ms188236.aspxfür Details.