Teilen über


Ausführen des von Azure Arc aktivierten SQL Servers mit geringsten Rechten

Gilt für: SQL Server

Das Informationssicherheitsprinzip der geringsten Privilegien besagt, dass Konten und Anwendungen nur auf die Daten und Vorgänge Zugriff haben, die sie benötigen. Wenn SQL Server von Azure Arc aktiviert ist, können Sie den Agent-Erweiterungsdienst mit geringsten Berechtigungen ausführen. In diesem Artikel wird erläutert, wie Sie den Agent-Erweiterungsdienst mit geringsten Rechten ausführen.

Führen Sie die Schritte in diesem Artikel aus, um optional den Dienst so zu konfigurieren, dass er mit geringsten Rechten ausgeführt wird. Derzeit wird der Dienst nicht automatisch mit geringsten Rechten ausgeführt.

Konfigurieren von Windows-Dienstkonten und -berechtigungen für Azure-Erweiterung für SQL Server beschreibt die Berechtigungen mit den geringsten Rechten für den Agentenerweiterungsdienst.

Hinweis

Ab der Version vom August 2024 verfügen alle über das automatische Onboarding bereitgestellten Erweiterungen automatisch über die geringste Berechtigungskonfiguration.

Vorhandene Server mit Erweiterung 1.1.2717.190 (Juni 2024) oder höher werden automatisch mit den geringsten Berechtigungen konfiguriert. Diese Anwendung wird schrittweise erfolgen.

Um die automatische Anwendung der geringsten Rechte zu verhindern, blockieren Sie Erweiterungsupgrades auf Version 1.1.2717.190 oder höher.

Nachdem Sie den Agent-Erweiterungsdienst so konfiguriert haben, dass er mit geringsten Rechten ausgeführt wird, verwendet er das NT Service\SQLServerExtension-Dienstkonto.

Das NT Service\SQLServerExtension-Konto ist ein lokales Windows-Wartungs-Konto:

  • Wird von der Azure-Erweiterung für SQL Server erstellt und verwaltet, wenn die Option der geringsten Berechtigung aktiviert ist.
  • Gewährung der erforderlichen Mindestberechtigungen und Rechte zur Ausführung des Azure-Erweiterungsdienstes für SQL Server auf dem Windows-Betriebssystem. Es hat nur Zugriff auf Ordner und Verzeichnisse, die zum Lesen und Speichern von Konfigurations- oder Schreibprotokollen verwendet werden.
  • Erteilte Berechtigung zum Herstellen einer Verbindung und Abfrage in SQL Server mit einer neuen Anmeldung speziell für dieses Dienstkonto, das über die erforderlichen Mindestberechtigungen verfügt. Mindestberechtigungen hängen von den aktivierten Features ab.
  • Aktualisiert, wenn Berechtigungen nicht mehr erforderlich sind. Beispielsweise werden Berechtigungen entzogen, wenn Sie eine Funktion deaktivieren, die Konfiguration der geringsten Rechte deaktivieren oder die Azure-Erweiterung für SQL Server deinstallieren. Der Entzug stellt sicher, dass keine Berechtigungen verbleiben, wenn sie nicht mehr benötigt werden.

Voraussetzungen

In diesem Abschnitt werden die Systemanforderungen und Tools aufgeführt, die Sie zum Abschließen des Beispiels in diesem Artikel benötigen.

Systemanforderungen

Für die Konfiguration mit geringsten Berechtigungen ist Folgendes erforderlich:

  • Windows Server 2012 oder höher
  • SQL Server 2012 oder höher

Die Konfiguration mit den geringsten Rechten wird derzeit unter Linux nicht unterstützt.

Extras

Um die Schritte in diesem Artikel auszuführen, benötigen Sie die folgenden Tools:

Aktivieren der geringsten Rechte

  1. Anmelden mit Azure CLI.

    az login
    
  2. Überprüfen Sie die Erweiterungsversion arcdata.

    az extension list -o table
    

    Wenn die Ergebnisse eine unterstützte Version von arcdata enthalten, fahren Sie mit dem nächsten Schritt fort.

    Installieren oder aktualisieren Sie bei Bedarf die Azure CLI-Erweiterung arcdata.

    Installieren Sie die Erweiterung wie folgt:

    az extension add --name arcdata
    

    So aktualisieren Sie die Erweiterung:

    az extension update --name arcdata
    
  3. Aktivieren Sie die geringsten Berechtigungen mit Azure CLI.

    Um die geringste Berechtigung zu aktivieren, setzen Sie das LeastPrivilege-Funktionsflag auf true. Führen Sie zum Abschluss dieser Aufgabe den folgenden Befehl mit aktualisierten Werten für <resource-group> und <machine-name> aus.

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
    

    Der folgende Befehl aktiviert beispielsweise das kleinste Zugriffsrecht für einen Server namens myserver in einer Ressourcengruppe namens myrg:

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver 
    

Überprüfen der Konfiguration der geringsten Rechte

So überprüfen Sie, ob Ihr von Azure Arc aktivierter SQL Server für die Ausführung mit den geringsten Rechten konfiguriert ist:

  1. Suchen Sie in den Windows-Diensten den Microsoft SQL Server-Erweiterungsdienst. Überprüfen Sie, ob der Dienst unter dem Dienstkonto NT Service\SqlServerExtension ausgeführt wird. 

  2. Öffnen Sie den Taskplaner auf dem Server und überprüfen Sie, ob unter Microsoft\SqlServerExtension eine ereignisgesteuerte Aufgabe mit dem Namen SqlServerExtensionPermissionProvider erstellt wurde.

    Hinweis

    Vor der Version vom Juli 2024 handelt es sich bei SqlServerExtensionPermissionProvider um eine geplante Aufgabe. Sie wird stündlich ausgeführt.

    Öffnen Sie den Taskplaner auf dem Server und überprüfen Sie, ob unter Microsoft\SqlServerExtension eine geplante Aufgabe mit dem Namen SqlServerExtensionPermissionProvider erstellt wurde.

  3. Öffnen Sie SQL Server Management Studio und überprüfen Sie die Anmeldung namens NT Service\SqlServerExtension. Stellen Sie sicher, dass dem Konto die folgenden Berechtigungen zugewiesen sind:

    • SQL verbinden
    • Datenbankstatus anzeigen
    • Server-Status anzeigen
  4. Überprüfen Sie die Berechtigungen mit den folgenden Abfragen:

    Um die Berechtigungen auf Serverebene zu überprüfen, führen Sie die folgende Abfrage aus:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    SELECT * FROM fn_my_permissions (NULL, 'SERVER");
    

    Um die Berechtigungen auf Datenbankebene zu überprüfen, ersetzen Sie <database name> durch den Namen einer Ihrer Datenbanken und führen Sie die folgende Abfrage aus:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    USE <database name>; 
    SELECT * FROM fn_my_permissions (NULL, 'database");