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
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. Dazu gehört auch, dass das SQL Server-Dienstkonto ein Mitglied der festen Serverrolle „sysadmin“ auf jeder SQL Server-Instanz sein muss.
Extras
Um die Schritte in diesem Artikel auszuführen, benötigen Sie die folgenden Tools:
- Azure-Befehlszeilenschnittstelle
arcdata
Azure CLI-Erweiterung Version1.5.9
oder höher- Azure-Erweiterung für SQL Server-Version
1.1.2504.99
oder höher
Aktivieren der geringsten Rechte
Anmelden mit Azure CLI.
az login
Ü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
Aktivieren Sie die geringsten Berechtigungen mit Azure CLI.
Um die geringste Berechtigung zu aktivieren, setzen Sie das
LeastPrivilege
-Funktionsflag auftrue
. 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 namensmyrg
: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:
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.Öffnen Sie den Taskplaner auf dem Server und überprüfen Sie, ob unter
Microsoft\SqlServerExtension
eine ereignisgesteuerte Aufgabe mit dem NamenSqlServerExtensionPermissionProvider
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 NamenSqlServerExtensionPermissionProvider
erstellt wurde.Ö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
Ü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");