Es kann kein Benutzer zur Sysadmin-Rolle in SQL Server hinzugefügt werden

9

Ich verwende SQL Server 2008 Management Studio. Das aktuelle Anmeldekonto gehört zur lokalen Administratorgruppe des Computers. Ich verwende den integrierten Windows-Sicherheitsmodus in SQL Server 2008.

Mein Problem ist, dass ich nach der Anmeldung bei SQL Server Management Studio meinen Anmeldenamen unter Sicherheit / Anmeldungen auswähle, dann die Registerkarte Serverrollen auswähle und dann das letzte Element auswähle - sysadmin, um mich zu dieser Gruppe / Rolle zu machen, aber es heißt ich habe nicht genug Erlaubnis. Irgendwelche Ideen, was ist falsch? Ich denke, der lokale Administrator sollte in der Lage sein, alles zu tun. :-)

George2
quelle
Dies ist, was Microsoft über dieses Problem liefert: msdn.microsoft.com/en-us/library/dd207004.aspx Ich kann dieses Skript empfehlen: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

Antworten:

6

Die Anmeldung der Sitzung, in der Sie Berechtigungen festlegen möchten, muss über Berechtigungen verfügen.

Das von Ihnen verwendete Login ist also ein lokaler Administrator? Dies bedeutet, dass die lokale Administratorgruppe nicht über genügend Rechte verfügt.

Die GUI führt auch dieses sp_addsrvrolemember aus . Obwohl dies sagt

Erfordert die Mitgliedschaft in der Rolle, zu der das neue Mitglied hinzugefügt wird.

Die lokale Administratorgruppe ist also kein Mitglied von sysadmin.

Bearbeiten:

So lösen Sie: Verwenden Sie ein Login mit Rechten. Sie können eine mit sp_helpsrvrolemember finden

gbn
quelle
Was raten Sie, um mein Problem zu lösen?
George2
Sie sind sich nicht sicher, ob es Rundumgänge oder Lösungen gibt, ohne SQL Server 2008 erneut zu installieren! :-(
George2
"Verwenden Sie ein Login mit Rechten" - wie kann ich eine Liste von Logins erhalten, die über ausreichende Berechtigungen verfügen?
George2
Vielen Dank, ich finde, das einzige Mitglied, das in EXEC aufgelistet ist. Sp_helpsrvrolemember 'sysadmin' heißt sa. Ist es ein Windows-Benutzer? Ich kann einen solchen Benutzer nicht in der Windows-Benutzerliste finden. Irgendwelche Ideen?
George2
1
Es ist eine reservierte SQL-Anmeldung, kein Windows-Benutzer. Bei meiner Testinstallation von SQL 2008 wird das Konto aufgelistet, mit dem SQL Server installiert wurde.
gbn
4

In einem ansonsten guten Artikel Fehlerbehebung: Herstellen einer Verbindung zu SQL Server Wenn Systemadministratoren gesperrt sind , teilt uns der Autor mit, dass wir nur noch die Kontrolle über unseren SQL Server erlangen müssen

"Starten Sie die Instanz von SQL Server im Einzelbenutzermodus mit den Optionen -m oder -f. Jedes Mitglied der lokalen Administratorgruppe des Computers kann dann als Mitglied der festen Serverrolle sysadmin eine Verbindung zur Instanz von SQL Server herstellen. ""

Leider ist es nicht intuitiv, im Einzelbenutzermodus zu starten. Zumindest meiner Erfahrung nach hat die Mitgliedschaft in der lokalen Administratorgruppe meines Computers meinem "Benutzer" -Konto keinen Systemadministratorstatus verliehen.

Diese Geschichte hatte begonnen, als ich ein Problem der Mitgliedschaft in meiner Domain durch einen Nicht-DC-Server (eine Folge des ISP-Wechsels) ansprach. Ich baute den DC ab 2008 in Windows Server 2008 R2 um. Dies löste einige kleinere Probleme, ging aber nicht auf die Frage der Mitgliedschaft durch den fehlerhaften Server. Um dies zu erreichen, war eine in ServerFault vorgeschlagene Korrektur erforderlich (in meinem Fall mussten Winsock und TCPIP zurückgesetzt werden).

SQL Server 2008 befindet sich auf diesem zweiten Server, der jetzt Mitglied der Domäne ist. Hier ist das Problem. Wie jemand in ServerFault betont, ist es üblich, bei der Installation von Server 2008 die Option "Lassen Sie den aktuellen Benutzer als Systemadministrator werden" zu drücken. Häufig wird auch niemand anderes berücksichtigt. Da diese Einzelbenutzeridentität ein Domänenmitglied einer Domäne war, die nicht mehr vorhanden war, hatte niemand die Berechtigung, SQL Server zu verwalten.

Ich habe mich als lokaler Serveradministrator angemeldet, der bei der Installation von SQL Server vorhanden war. Obwohl dies mir den Zugriff auf das Management Studio ermöglichte, stellte ich schnell fest, dass BUILTIN \ Administrators nur die "öffentliche" Serverrolle hatte.

Nach vielen Recherchen und Experimenten stieß ich auf einen Artikel, in dem die Besonderheiten der Einzelbenutzeranmeldung angegeben wurden : http://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Um sich auf diesen Schritt vorzubereiten, müssen Sie SQL Server herunterfahren (der in den meisten Fällen standardmäßig ausgeführt wird). Verwenden Sie SQL Configuration Manager, um "SQL Server" zu stoppen.

Navigieren Sie dann an einer Eingabeaufforderung zu diesem Speicherort der Programmdatei (oder einem entsprechenden Speicherort auf Ihrem Computer) und geben Sie den Befehl "sqlservr.exe -m" aus. Wenn an Ihrer Eingabeaufforderung ein Aktivitätsstrom protokolliert wird, sind Sie erfolgreich. Wenn es nicht gestartet werden kann, wird SQL Server wahrscheinlich bereits ausgeführt. Schalten Sie ihn aus.

Ermöglichen Sie der Einzelbenutzerinstanz, ihre Datenbanken anzuhängen. Wenn die Protokollaktivität beendet ist, öffnen Sie Management Studio. Sie befinden sich automatisch im Einzelbenutzermodus, und daher ist jedes Konto, das Sie vertreten, ein Systemadministrator. Verwenden Sie diese Funktion, um Sicherheitsanmeldungen und Serverrollen anzupassen.

In meinem Fall musste ich die Domänenkonten in der neuen Domäne neu erstellen, dann ihre Namensvetter in SQL Server löschen und sie (aufgrund der SID / GUID-Situation) rekonstruieren und die Berechtigungen nach Bedarf bestimmten Datenbanken neu zuweisen.

Michael Broschat
quelle
Es gibt auch eine andere Möglichkeit, Parameter festzulegen: Öffnen Sie den Dienst, den Manager, wählen Sie den Dienst und dann die Eigenschaften aus dem Kontextmenü aus. Auf der Registerkarte Allgemein gibt es eine Bearbeitung "Startparameter". Geben Sie dort die erforderlichen Parameter ein. Dann starten Sie den Dienst auf den Startknopf in dieser Seite mit , stellen Sie die Parameter sind nicht dauerhaft und nur gültig , wenn der Dienst über den Eigenschaftendialog gestartet.
ldsandon
3

SQL Server 2008 fügt BUILTIN \ Administrators nicht mehr als Mitglieder der festen Serverrolle sysadmin hinzu

Das stimmt, ABER in diesem Fall können Sie sich von dieser Situation erholen, indem Sie den SQL Server-Dienst im Einzelbenutzermodus (Notfallmodus) starten, und jeder lokale Administrator kann sich anmelden.

Siehe MSDN .

abatishchev
quelle
2

Standardmäßig fügt SQL der Sysadmin-Rolle die Gruppe BUILTIN \ Administrators hinzu. Dies bedeutet, dass jeder lokale NT-Administrator automatisch ein SQL-Sysadmin ist. Unter Vista müssen Sie aufgrund der Benutzerkontensteuerung im Administratormodus ausgeführt werden, um von dieser Berechtigung zu profitieren.

  • Wenn Sie unter Vista arbeiten, führen Sie das Client-Tool (SSMS) "als Administrator" aus und versuchen Sie dann, sich selbst als Systemadministrator hinzuzufügen.
  • Wenn die Gruppe BUILTIN \ Administrators versehentlich aus der Sysadmin-Rolle entfernt wurde, müssen Sie sich mit einem anderen Sysadmin-Login anmelden. Wenn es keine andere Sysadmin-Anmeldung gibt, müssen Sie sich mit der SQL-Authentifizierung als sa anmelden und das sa-Kennwort verwenden, das während der Einrichtung festgelegt wurde. Sobald Sie als Mitglied von sysadmin angemeldet sind, kehren Sie mit BUILTIN \ Admisnitrators zur Sysadmin-Rolle zurück. Wenn SQL-Anmeldungen deaktiviert sind, gratulieren Sie einfach der SQL-Installation.
  • Wenn die Gruppe BUILTIN \ Administrators absichtlich aus der Sysadmin-Rolle entfernt wurde (gemäß KB932881 ), versuchen Sie, sich in ein System zu hacken, für das Sie keine Berechtigung haben.
Remus Rusanu
quelle
Hallo Remus, ich bin verwirrt, dass ich während des Installationsvorgangs kein Passwort für sa einrichte. Gibt es ein Standardkennwort?
George2
Eine weitere Verwirrung besteht darin, dass von der Ausführung der Speicherprozedur sp_helpsrvrolemember zum Auffinden aller Benutzer der Sysadmin-Rolle nur sa aufgelistet wird, keine anderen Benutzer aus der lokalen Computeradministrator-Gruppe. Gibt es Ideen, warum?
George2
Es gibt kein Standardkennwort für sa. Das Passwort von sa wird während des Setups festgelegt, wenn die gemischte Authentifizierung aktiviert ist. Sie müssen den Administrator Ihrer Datenbank bitten, Ihnen bei Bedarf Zugriff zu gewähren.
Remus Rusanu
"Wenn SQL-Anmeldungen deaktiviert sind, schließen Sie sich einfach aus der SQL-Installation aus." In diesem Fall finden Sie in Jordis Antwort unten Informationen zum Starten von SQL Server im Einzelbenutzermodus.
Michiel van Oosterhout
1

Standardmäßig fügt SQL Server 2008 BUILTIN \ Administrators nicht mehr als Mitglieder der festen Serverrolle sysadmin hinzu. Wenn Sie das Installationsprogramm durchlaufen, werden Sie gefragt, welches Konto oder welche Konten über Systemadministratorrechte verfügen sollen. Es gibt eine Schaltfläche mit der Aufschrift "Mach mich zu einem Systemadministrator", mit der das Konto des Benutzers, der die Installation durchführt, als Systemadministrator hinzugefügt wird.

Wenn sie keine anderen Benutzer als Sysadmins hinzugefügt haben, ist derzeit nur dieser Benutzer ein Sysamdin. Diese Person muss sich beim SQL Server anmelden und den DBA-Systemadministratorrechten gewähren.

mrdenny
quelle
0

Nach einer Neuinstallation habe ich über dasselbe Problem nachgedacht, bis ich den Server unter SQL Server 2008 registriert habe. Dann lief alles so, wie es sollte


quelle