Löschen der automatisch erstellten NT AUTHORITY- und NT SERVICE-Konten

8

Daher habe ich kürzlich Jobs verschoben. Ein Teil des Codes, den ich in unseren Build-Skripten für neue SQL Server-Installationen entdeckt habe, ist unten aufgeführt.

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT AUTHORITY\SYSTEM' )
    BEGIN
        DROP LOGIN [NT AUTHORITY\SYSTEM];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\SQLWriter' )
    BEGIN
        DROP LOGIN [NT SERVICE\SQLWriter];
    END

IF EXISTS ( SELECT  *
            FROM    [sys].[syslogins]
            WHERE   [name] = N'NT SERVICE\Winmgmt' )
    BEGIN
        DROP LOGIN [NT SERVICE\Winmgmt];
    END
GO

Diese Konten werden standardmäßig während des SQL Server-Installationsprozesses erstellt.

Werden die oben genannten Anmeldungen empfohlen? Gibt es irgendwelche Nebenwirkungen, die dies verursachen könnte? Wofür werden diese Anmeldungen verwendet?

Ich lese Kann ich die Anmeldungen NT SERVICE \ SQLWriter und NT SERVICE \ Winmgmt löschen? aber es ist einfach nicht konkret genug - ich kann sehen, wofür sie gebraucht werden, aber sonst sehr wenig. Benötigen sie einen Systemadministratorzugriff? usw.

Als Beispiel (entnommen aus Konfigurieren von Windows-Dienstkonten und -Berechtigungen ):

Das lokale System ist ein sehr privilegiertes integriertes Konto. Es verfügt über umfangreiche Berechtigungen für das lokale System und fungiert als Computer im Netzwerk. Der tatsächliche Name des Kontos lautet NT AUTHORITY\SYSTEM.

Wie soll ich das lesen? Sollte es mit diesen "hohen" Privilegien belassen werden?

George.Palacios
quelle
Siehe diese vorherige verwandte Frage . Persönlich denke ich, dass dies nur dann getan werden sollte, wenn (a) dies einen konkreten Vorteil hat und (b) es Beweise dafür gibt, dass Nebenwirkungen Sie nicht beeinträchtigen.
Aaron Bertrand

Antworten:

2

Bevor Sie abstimmen, finden Sie hier eine formelle Dokumentation, auf die Sie aus einem legitimen Grund verweisen können, warum diese Konten wie folgt als Skript erstellt werden: STIG-Regel SV-53421r2_rule . Diese Steuerelemente sind versionsspezifisch für SQL Server, es gibt jedoch auch eine Reihe anderer Steuerelemente in den neueren Versionen. Wenn Sie für eine Organisation arbeiten, die unter diese Kontrolle fällt und auch einige der strengeren einhält, z. B. das Widerrufen von Standardzuschüssen für die öffentliche Rolle, können die Dinge ziemlich schnell kompliziert werden.

Als ich einige Erfahrung in einer Umgebung, die unter diesen Kontrollen fällt, kann ich sagen , dass Sie deaktivieren / fallen sowohl die NT SERVICE\SQLWriterund NT SERVICE\WinmgmtOutright - Konten, aber Sie müssen sicher , dass der SQL Server - Dienst machen , wird im Rahmen eines entsprechenden Dienstkonto mit ausreichend OS - Ebene läuft Berechtigungen, z. B. ein ausreichend gesperrtes Domänendienstkonto oder noch besser eigenständige oder gruppenverwaltete Dienstkonten . Auch hier müssen Betriebssystemberechtigungen mit Sorgfalt behandelt werden, da dies das Kartenhausgebiet betritt, wenn Sie nicht genügend Tests durchführen.

Das NT AUTHORITY\SYSTEMKonto ist KEIN Konto, das Sie löschen möchten, wenn Sie Verfügbarkeitsgruppen ausführen möchten. Tatsächlich erwähnt STIG SV-93835r1_rule , dass Sie es nur CONNECT SQLmit standardmäßig gewährten Berechtigungen behalten sollten . Für den Fall, dass Sie über eine Verfügbarkeitsgruppe verfügen, muss dieses Konto über die folgenden zusätzlichen Berechtigungen verfügen:

  • ÄNDERN SIE JEDE VERFÜGBARKEITSGRUPPE
  • SERVERZUSTAND ANZEIGEN
  • EXECUTE ON [sys]. [Sp_server_diagnostics]
  • EXECUTE ON [sys]. [Sp_availability_group_command_internal]

Diese Einschränkungen können ein königlicher Schmerz sein, aber es gibt legitime Gründe, warum Sie ihre Verwendung und Berechtigungssätze einschränken müssten. Wenn Sie nicht unter diese Richtlinien fallen, tun Sie sich selbst den Gefallen und kommentieren Sie diese Schritte aus.

Ich hoffe, das hilft!

John Eisbrener
quelle