SQL Server-Dienstkonto Windows-Berechtigungen und -Rechte

12

Meine Frage ist, wenn Sie ein neues Domänenbenutzerkonto für jeden der SQL Server-Prozesse erstellen, welche Berechtigungen sollten für jedes Konto festgelegt werden? Oder kümmert sich der SQL-Konfigurationsmanager tatsächlich darum, und ich hatte gerade ein unvorhergesehenes Problem?

Ich muss häufig Microsoft SQL Server einrichten und habe mich gefragt, ob jemand Ratschläge zur Konfiguration der Konten geben kann, unter denen die Dienste ausgeführt werden sollen. IMO dies wurde vage von Microsoft dokumentiert, während sie Sie in die richtige Richtung weisen Ich habe nie in der Lage, konkrete Beispiele zu finden.

Um zusammenzufassen, was ich bisher gesehen habe:

Für einfache Bereitstellungen \ Entwicklungsumgebungen ist es in Ordnung, die vom Installationsprogramm verwendeten Standardeinstellungen für virtuelle Konten zu verwenden: z NT SERVICE\MSSQLSERVER

Vermeiden Sie die Verwendung des SYSTEMKontos, dies ist nicht sicher.

Für die Produktion und in Domänenumgebungen wird empfohlen, entweder ein verwaltetes Dienstkonto zu verwenden oder für jeden Dienst ein Domänenbenutzerkonto (kein Administrator) zu erstellen. Wenn Sie zum Zeitpunkt der Installation ein Domänenkonto verwenden, wird das Installationsprogramm angeblich die erforderlichen Berechtigungen für Sie festlegen.

Wenn Sie das Dienstkonto einer vorhandenen Installation von einem virtuellen Konto in ein Domänenkonto ändern, wird empfohlen, die neuen Dienstkonten mit dem SQL Server-Konfigurationsmanager festzulegen. Angeblich werden dadurch alle erforderlichen Berechtigungen für Sie festgelegt.

Ich habe gerade versucht, das Dienstkonto in einer vorhandenen Installation in ein Domänenkonto zu ändern, und es führte zu einem Anmeldefehler, bis ich die Kontoberechtigung log on as serviceerteilte. Dies widerspricht dem Teil, in dem der SQL Server-Konfigurationsmanager die erforderlichen Berechtigungen festlegt. (Obwohl ich nicht sicher bin, ob ein Gruppenrichtlinienobjekt möglicherweise das Festlegen dieser lokalen Sicherheitsrichtlinie beeinträchtigt hat)

Microsoft stellt eine Liste der Berechtigungen bereit, die das SQL Server-Setup auf dieser Seite gewährt .

Mir ist jedoch nicht klar, ob ich dies manuell für den Benutzer tun soll, unter dem ich den Dienst erstelle, oder ob die Verwendung des SQL-Konfigurationsmanagers diese Berechtigungen automatisch festlegen soll.

SQL Server 2014, Domänencontroller ist auf Windows Server 2008 R2.

Pflaumenhund
quelle
Welche Version von SQL? Ist das eine AD-Umgebung? Wenn ja, auf welcher Domain-Ebene?
Katherine Villyard
Danke, ich habe die Versionen der Frage hinzugefügt. SQL Server 2014, Domänencontroller ist auf Windows Server 2008 R2-Funktionsebene
1
Dies scheint mir keine vage Dokumentation zu sein. Das sieht ziemlich umfassend aus. - msdn.microsoft.com/en-us/library/ms143504.aspx
Ja, ich stimme zu, insgesamt ist die Dokumentation gut, aber der Teil, bei dem ich mir nicht sicher bin, ist vage, was ich meinte. Sie haben recht, im Großen und Ganzen ist die Dokumentation sehr detailliert.
Plumdog

Antworten:

10

Ich muss häufig MS SQL Server einrichten und habe mich gefragt, ob jemand Ratschläge zur Konfiguration der Konten geben kann, unter denen die Dienste ausgeführt werden sollen. IMO dies wurde vage von Microsoft dokumentiert, während sie Sie in die richtige Richtung weisen Ich habe nie in der Lage, konkrete Beispiele zu finden.

Es ist tatsächlich ziemlich ausführlich dokumentiert: http://msdn.microsoft.com/en-us/library/ms143504.aspx

Gibt es einen Teil, bei dem Sie sich nicht sicher sind?

Für einfache Bereitstellungen \ Entwicklungsumgebungen ist es in Ordnung, die vom Installationsprogramm verwendeten Standardeinstellungen für virtuelle Konten zu verwenden: z. B. NT SERVICE \ MSSQLSERVER

Dies wird von der Umgebung abhängen. Ich persönlich hasse es, einen Server zu finden, der über ein lokales Konto eingerichtet wurde, und unter anderem zu einem späteren Zeitpunkt den Zugriff auf Netzwerkressourcen zu beantragen.

Für die Produktion und in Domänenumgebungen wird empfohlen, entweder ein verwaltetes Dienstkonto zu verwenden oder für jeden Dienst ein Domänenbenutzerkonto (kein Administrator) zu erstellen.

Auch dies hängt davon ab, aber im Allgemeinen würde ich dem zustimmen (ein Gegenbeispiel wären Verfügbarkeitsgruppen, bei denen es sinnvoll ist, ein einziges Domänenkonto für alle Instanzen zu verwenden).

Wenn Sie zum Zeitpunkt der Installation ein Domänenkonto verwenden, wird das Installationsprogramm angeblich die erforderlichen Berechtigungen für Sie festlegen.

Es sei denn, es liegt ein Fehler usw. vor. Ich bin mir nicht sicher, warum der Teil "Angeblich".

Wenn Sie das Dienstkonto einer vorhandenen Installation von einem virtuellen Konto in ein Domänenkonto ändern, wird empfohlen, die neuen Dienstkonten mit dem SQL Server-Konfigurationsmanager festzulegen. Angeblich werden dadurch alle erforderlichen Berechtigungen für Sie festgelegt.

Verwenden Sie immer SSCM, wenn Sie Dienste für SQL Server ändern. Immer. Zeitraum. Hiermit werden die Berechtigungen für das neue Konto auf die Grundeinstellungen festgelegt. Wenn vor der Verwendung des lokalen Systemkontos eine uneingeschränkte Berechtigung für alles auf dem System vorhanden war, würde ich erwarten, dass die Berechtigungen nach der Änderung aufgrund strenger kontrollierter Sicherheit fehlschlagen. Dies ist kein SQL Server SSCM-Fehler, sondern ein Administratorfehler, da keine ordnungsgemäßen EXTRA-Berechtigungen erteilt wurden (z. B. Zugriff auf eine Netzwerkfreigabe, eingeschränkte Ordner, Elemente außerhalb des SQL Server-Installationsbereichs usw.).

Ich habe gerade versucht, das Dienstkonto in einer vorhandenen Installation in ein Domänenkonto zu ändern, und es führte zu einem Anmeldefehler, bis ich die Berechtigung "Anmelden als Dienst" für das Konto erteilte, was dem Teil widerspricht, in dem der SQL Server-Konfigurationsmanager die erforderlichen Einstellungen vornimmt Berechtigungen. (Obwohl ich nicht sicher bin, ob ein Gruppenrichtlinienobjekt möglicherweise die Einstellung dieser lokalen Sicherheitsrichtlinie beeinträchtigt hat)

Klingt so, als ob ein Gruppenrichtlinienobjekt ein Problem verursacht (IMHO). Wäre nicht das erste mal :)

Meine Frage lautet also: Wenn Sie ein neues Domänenbenutzerkonto für jeden der SQL Server-Prozesse erstellen, welche Berechtigungen sollten für jedes Konto festgelegt werden?

Ich würde explizit alle Berechtigungen festlegen, die nicht in dem oben angegebenen msdn-Link enthalten sind (auch von @joeqwerty und in Ihrem OP angegeben). Zum Beispiel in einem "Backup" -Ordner auf einer Netzwerkfreigabe, auf einem neuen Laufwerk, das hinzugefügt wurde, um neue Datenbanken aufzunehmen (wo Setup bereits ausgeführt wurde, das Laufwerk jedoch nicht vorhanden war) usw.

Mir ist jedoch nicht klar, ob ich dies manuell für den Benutzer tun soll, unter dem ich den Dienst erstelle, oder ob die Verwendung des SQL-Konfigurationsmanagers diese Berechtigungen automatisch festlegen soll.

Sofern mit dem Server nichts extrem kaputt geht, sollten diese nicht manuell angegeben werden müssen.

Sean Gallardy
quelle
Vielen Dank für Ihre Antwort. Ich stimme Ihren Kommentaren zu. Ich habe SQL Server auf einer anderen sauberen VM eingerichtet, um dies zu überprüfen, und ich konnte vom virtuellen Konto NT SERVICE / MSSQLSERVER zu einem Domänenbenutzerkonto wechseln, und es funktionierte ohne Probleme. Ich denke, die Antwort ist, wie Sie gesagt haben, verwenden Sie SQL Server Configuration Manager, um die Dienstbenutzerkontoanmeldungen zu ändern, und es sollten keine zusätzlichen Berechtigungen erforderlich sein.
Plumdog
Ein zusätzlicher Kommentar, sorry, ich hätte meine Frage klarer stellen können, indem ich meinen Hauptpunkt ganz oben auf den Beitrag gesetzt habe, den ich in Zukunft machen werde. Die Hauptfrage, bei der ich mir nicht sicher war, war: [Wenn Sie für jeden SQL Server-Prozess ein neues Domänenbenutzerkonto erstellen, welche Berechtigungen sollten für jedes Konto festgelegt werden? ...]. Der Grund, warum ich der Meinung war, dass die Dokumentation in diesem Teil vage ist, ist, dass eine Liste der festgelegten Berechtigungen vorhanden ist, aber es ist nicht explizit, ob SSCM diese für Sie festlegen wird.
Plumdog
@plumdog Gemäß Ihrem zweiten Kommentar werden die meisten Berechtigungen vom Installationsprogramm erteilt. Ein virtuelles Dienstkonto und sid sind daran gebunden, weshalb SSCM immer verwendet werden sollte, damit die damit verbundenen Berechtigungen korrekt übertragen werden, unter anderem hinsichtlich der mit der Verschlüsselung des Diensthauptschlüssels verbundenen Sicherheit usw .
Sean Gallardy