Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Agenten-Erweiterungsdienst mit möglichst wenigen Berechtigungen 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 minimalen Berechtigungen 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
Derzeit wird die konfiguration mit den geringsten Rechten nicht standardmäßig angewendet.
Vorhandene Server mit Erweiterungsversion 1.1.2859.223 oder höher verfügen schließlich über die am wenigsten privilegierte Konfiguration. Diese Erweiterung wurde im November 2024 veröffentlicht. Um die automatische Anwendung der geringsten Rechte zu verhindern, blockieren Sie Erweiterungsupgrades nach 1.1.2859.223.
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.
- Sie verfügen über die erforderlichen Mindestberechtigungen, um den Dienst Azure Extension for SQL Server auf dem Windows-Betriebssystem auszuführen. 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 widerrufen, wenn Sie ein Feature deaktivieren. Der Entzug stellt sicher, dass keine Berechtigungen verbleiben, wenn sie nicht mehr benötigt werden.
-
NT SERVICE\SqlServerExtensionwird entfernt, wenn Azure Erweiterung für SQL Server deinstalliert wird oder wenn die Geringste Berechtigungskonfiguration deaktiviert ist.
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 neueren Versionen.
- SQL Server 2012 oder höher.
- Das SQL Server-Dienstkonto muss Mitglied der sysadmin festen Serverrolle sein.
- Alle Datenbanken müssen online und aktualisierbar sein.
Die Konfiguration mit den geringsten Berechtigungen wird derzeit unter Linux nicht unterstützt.
Andere Anforderungen, wie in den Voraussetzungen aufgeführt, gelten weiterhin.
SQL Server-Dienstkonto
Standardmäßig ist das SQL Server-Dienstkonto Mitglied der sysadmin festen Serverrolle.
Wie in den Voraussetzungen aufgeführt, muss das SQL-Server-Dienstkonto Mitglied der festen Serverrolle sysadmin für jede SQL Server-Instanz sein. Die Azure Erweiterung für SQL Server hat einen Prozess namens Deployer.exe, der als NT AUTHORITY\SYSTEM ausgeführt wird, wenn:
- Features werden aktiviert oder deaktiviert.
- SQL Server-Instanzen werden hinzugefügt oder entfernt.
Hinweis
Deployer.exe nimmt das SQL Server-Dienstkonto an, wenn es eine Verbindung mit SQL Server herstellt. Nach der Verbindung werden Berechtigungen in den Server- und Datenbankrollen hinzugefügt oder entfernt, je nachdem, welche Features aktiviert oder deaktiviert sind. Dieser Prozess stellt sicher, dass die Azure-Erweiterung für SQL Server die geringsten Berechtigungen verwendet. Daher muss das SQL Server Dienstkonto Mitglied der sysadmin festen Serverrolle sein.
Wenn Sie diesen Prozess mit mehr Kontrolle verwalten möchten, damit das SQL Server-Dienstkonto nicht ständig Mitglied der festen Serverrolle sysadmin ist, führen Sie die folgenden Schritte aus:
- Fügen Sie das SQL Server Dienstkonto vorübergehend zur sysadmin festen Serverrolle hinzu.
- Lassen Sie zu, dass
Deployer.exemindestens einmal ausgeführt werden, sodass die Berechtigungen festgelegt werden. - Entfernen Sie das Dienstkonto des SQL Servers aus der festen Serverrolle 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 können.
Important
Die Azure-Erweiterung für SQL Server Deployer.exe erfordert, dass NT AUTHORITY\SYSTEM mit SQL Server verbunden werden kann, mit CONNECT SQL-Berechtigung in den Modi standard und least privilege. Diese Anforderung besteht, weil Deployer.exe immer unter dem LocalSystem Konto ausgeführt wird, unabhängig davon, welches Dienstkonto die Erweiterung nach der Bereitstellung verwendet.
Wenn NT AUTHORITY\SYSTEM keine Verbindung mit SQL Server herstellen kann, kann Deployer.exe die NT SERVICE\SqlServerExtensionAnmeldung nicht erstellen oder die erforderlichen Berechtigungen erteilen. Bevor Sie den Modus mit minimalen Rechten aktivieren, vergewissern Sie sich, dass NT AUTHORITY\SYSTEM eine aktive SQL Server-Anmeldung mit CONNECT SQL-Berechtigung hat. Informationen zu Überprüfungsschritten finden Sie unter "Voraussetzungen ".
Werkzeuge
Um die Schritte in diesem Artikel auszuführen, benötigen Sie die folgenden Tools:
- Azure-Befehlszeilenschnittstelle
-
arcdataAzure CLI-Erweiterung Version1.5.9oder höher - Azure Erweiterung für SQL Server Version
1.1.2859.223oder neuere Versionen
Aktivieren der geringsten Rechte
Melden Sie sich mit der Azure CLI an.
az loginÜberprüfen Sie die Erweiterungsversion
arcdata.az extension list -o tableWenn die Ergebnisse eine unterstützte Version von
arcdataenthalten, 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 arcdataSo aktualisieren Sie die Erweiterung:
az extension update --name arcdataAktivieren 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
myserverin 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. Stellen Sie sicher, dass der Dienst als Dienstkonto
NT SERVICE\SqlServerExtensionausgeführt wird.Öffnen Sie den Aufgabenplaner auf dem Server, und überprüfen Sie, ob eine ereignisgesteuerte Aufgabe mit dem Namen
SqlServerExtensionPermissionProviderunterMicrosoft\SqlServerExtensionerstellt wird.Hinweis
Vor der Veröffentlichung im Juli 2024 war
SqlServerExtensionPermissionProvidereine geplante Aufgabe, die stündlich ausgeführt 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:
Führen Sie die folgende Abfrage aus, um Berechtigungen auf Serverebene zu überprüfen:
EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; SELECT * FROM fn_my_permissions(NULL, 'SERVER'); REVERT;Ersetzen Sie
<database name>zum Überprüfen der Berechtigungen auf Datenbankebene 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'); REVERT;