Freigeben ü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

Vorhandene Server mit der Erweiterung der Version vom November 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 der Version vom November 2024 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
  • Das Dienstkonto des SQL Servers muss ein Mitglied der festen Serverrolle sysadmin sein
  • Alle Datenbanken müssen online und aktualisierbar sein

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

Die in Voraussetzungen für SQL Server mit Azure Arc-Unterstützung aufgeführten Anforderungen gelten weiterhin.

SQL Server-Dienstkonto

Das SQL Server-Dienstkonto ist standardmäßig ein Mitglied der festen Serverrolle sysadmin.

Wie in den Voraussetzungen aufgeführt, muss das SQL Server-Dienstkonto ein Mitglied der festen Serverrolle sysadmin in jeder SQL Server-Instanz sein. Die Azure-Erweiterung für SQL Server verfügt über einen Prozess namens Deployer.exe, der in folgenden Fällen vorübergehend als NT AUTHORITY\SYSTEM ausgeführt wird:

  • Features werden aktiviert oder deaktiviert.
  • SQL Server-Instanzen werden hinzugefügt oder entfernt.

Deployer.exe nimmt die Identität des SQL Server-Dienstkontos an, um eine Verbindung mit SQL Server herzustellen und Berechtigungen in Server- und Datenbankrollen hinzuzufügen oder zu entfernen, je nachdem, welche Features aktiviert oder deaktiviert werden, um sicherzustellen, dass die Azure-Erweiterung für SQL Server die geringsten Berechtigungen verwendet. Um diese Berechtigungen zu ändern, muss das SQL Server-Dienstkonto ein Mitglied der Serverrolle sysadmin sein.

Wenn Sie bei der Verwaltung dieses Prozesses mehr Kontrolle haben möchten, sodass das SQL Server-Dienstkonto nicht immer Mitglied der Serverrolle „SysAdmin“ ist, führen Sie die folgenden Schritte aus:

  1. Fügen Sie vorübergehend das SQL Server-Dienstkonto zur Serverrolle „SysAdmin“ hinzu.
  2. Lassen Sie zu, dass Deployer.exe mindestens einmal ausgeführt werden, sodass die Berechtigungen festgelegt werden.
  3. Entfernen Sie das SQL Server-Dienstkonto aus der Rolle „SysAdmin“.

Wiederholen Sie dieses Verfahren jedes Mal, wenn Features aktiviert oder deaktiviert oder SQL Server-Instanzen hinzugefügt werden, damit Deployer.exe die geringsten Berechtigungen gewähren kann.

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");