Obsługa programu SQL Server włączonego przez usługę Azure Arc z najniższymi uprawnieniami
Dotyczy:programu SQL Server
Zasada zabezpieczeń informacji o najniższych uprawnieniach potwierdza, że konta i aplikacje mają dostęp tylko do danych i operacji, których potrzebują. Po włączeniu programu SQL Server przez usługę Azure Arc można uruchomić usługę rozszerzenia agenta z najniższymi uprawnieniami. W tym artykule wyjaśniono, jak uruchomić usługę rozszerzenia agenta z najmniejszymi uprawnieniami.
Aby opcjonalnie skonfigurować usługę do uruchamiania z najniższymi uprawnieniami, wykonaj kroki opisane w tym artykule. Obecnie usługa nie jest uruchamiana automatycznie z najniższymi uprawnieniami.
Konfigurowanie kont usług systemu Windows i uprawnień dla rozszerzenia platformy Azure dla programu SQL Server opisuje uprawnienia najmniejszych uprawnień dla usługi rozszerzenia agenta.
Notatka
Istniejące serwery z rozszerzeniem z listopada 2024 r. lub nowszym będą automatycznie miały zastosowaną konfigurację o najniższych uprawnieniach. Ta aplikacja będzie miała miejsce stopniowo.
Aby zapobiec automatycznemu stosowaniu najniższych uprawnień, blokuj uaktualnienia rozszerzeń do wersji z listopada 2024 r.
Po skonfigurowaniu usługi rozszerzenia agenta do uruchamiania z najniższymi uprawnieniami, używane jest konto usługi NT Service\SQLServerExtension
.
Konto NT Service\SQLServerExtension
to lokalne konto usługi systemu Windows:
- Utworzone i zarządzane przez rozszerzenie platformy Azure dla programu SQL Server po włączeniu opcji najniższych uprawnień.
- Przyznano minimalne wymagane uprawnienia i uprawnienia do uruchamiania rozszerzenia platformy Azure dla usługi SQL Server w systemie operacyjnym Windows. Ma on dostęp tylko do folderów i katalogów używanych do odczytywania i przechowywania konfiguracji lub zapisywania dzienników.
- Udzielono uprawnień do nawiązywania połączenia i wykonywania zapytań w programie SQL Server przy użyciu nowego identyfikatora logowania, przeznaczonego specjalnie dla tego konta usługi, które ma wymagane minimalne uprawnienia. Minimalne uprawnienia zależą od włączonych funkcji.
- Zaktualizowano, gdy uprawnienia nie są już niezbędne. Na przykład uprawnienia są odwołyane po wyłączeniu funkcji, wyłączeniu konfiguracji najniższych uprawnień lub odinstalowaniu rozszerzenia platformy Azure dla programu SQL Server. Odwołanie gwarantuje, że żadne uprawnienia nie pozostaną po tym, jak nie są już wymagane.
Warunki wstępne
W tej sekcji przedstawiono wymagania systemowe i narzędzia potrzebne do ukończenia przykładu w tym artykule.
Wymagania systemowe
Konfiguracja z najniższymi uprawnieniami wymaga:
- Windows Server 2012 lub nowszy
- SQL Server 2012 lub nowszy
- Konto usługi SQL Server musi być członkiem ustalonej roli serwera
sysadmin
- Wszystkie bazy danych muszą być w trybie online i można je aktualizować
Konfiguracja z najmniejszymi uprawnieniami nie jest obecnie obsługiwana w systemie Linux.
Inne wymagania wymienione w Wymagania wstępne — program SQL Server włączony przez usługę Azure Arc nadal ma zastosowanie.
Konto usługi programu SQL Server
Domyślnie konto usługi programu SQL Server jest członkiem stałej roli serwera sysadmin
.
Zgodnie z wymaganiami wstępnymi, konto usługi SQL Server musi być członkiem stałej roli serwera sysadmin
w każdym wystąpieniu SQL Server. Rozszerzenie platformy Azure dla programu SQL Server ma proces o nazwie Deployer.exe
, który tymczasowo działa jako NT AUTHORITY\SYSTEM
, gdy:
- Funkcje są włączone lub wyłączone
- Wystąpienia programu SQL Server są dodawane lub usuwane
Deployer.exe
personifikuje konto usługi programu SQL Server, aby nawiązać połączenie z programem SQL Server i dodać lub usunąć uprawnienia w rolach serwera i bazy danych w zależności od tego, które funkcje są włączone lub wyłączone, aby upewnić się, że rozszerzenie platformy Azure dla programu SQL Server używa najmniejszych wymaganych uprawnień. Aby zmodyfikować te uprawnienia, konto usługi programu SQL Server musi być członkiem roli serwera sysadmin
.
Jeśli chcesz zarządzać tym procesem z większą kontrolą, tak aby konto usługi programu SQL Server nie było członkiem roli serwera sysadmin przez cały czas, wykonaj następujące kroki:
- Tymczasowo dodaj konto usługi programu SQL Server do roli serwera sysadmin.
- Zezwalaj
Deployer.exe
na uruchamianie co najmniej raz, aby uprawnienia zostały ustawione. - Usuń konto usługi programu SQL Server z roli sysadmin.
Powtórz tę procedurę za każdym razem, gdy funkcje są włączone lub wyłączone lub są dodawane wystąpienia programu SQL Server, aby umożliwić Deployer.exe
przyznać najmniej wymaganych uprawnień.
Narzędzia
Aby wykonać kroki opisane w tym artykule, potrzebne są następujące narzędzia:
- interfejsu wiersza polecenia platformy Azure
-
arcdata
rozszerzenie Azure CLI wersja1.5.9
lub nowsza - Rozszerzenie platformy Azure dla programu SQL Server w wersji
1.1.2504.99
lub nowszej
Włącz najmniejsze uprawnienia
Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure.
az login
Sprawdź wersję rozszerzenia
arcdata
.az extension list -o table
Jeśli wyniki zawierają obsługiwaną wersję
arcdata
, przejdź do następnego kroku.W razie potrzeby zainstaluj lub zaktualizuj rozszerzenie interfejsu wiersza polecenia platformy Azure
arcdata
.Aby zainstalować rozszerzenie:
az extension add --name arcdata
Aby zaktualizować rozszerzenie:
az extension update --name arcdata
Włącz najniższe uprawnienia za pomocą Azure CLI.
Aby włączyć najmniejsze uprawnienia, ustaw flagę funkcji
LeastPrivilege
natrue
. Aby wykonać to zadanie, uruchom następujące polecenie ze zaktualizowanymi wartościami<resource-group>
i<machine-name>
.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Na przykład następujące polecenie włącza najmniejsze uprawnienia dla serwera o nazwie
myserver
w grupie zasobów o nazwiemyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Weryfikowanie konfiguracji najmniejszych uprawnień
Aby sprawdzić, czy program SQL Server włączony przez usługę Azure Arc jest skonfigurowany do uruchamiania z najniższymi uprawnieniami:
W usługach systemu Windows znajdź usługę Usługi rozszerzenia programu Microsoft SQL Server. Sprawdź, czy usługa jest uruchomiona jako konto usługi
NT Service\SqlServerExtension
.Otwórz harmonogram zadań na serwerze i sprawdź, czy zadanie sterowane zdarzeniami o nazwie
SqlServerExtensionPermissionProvider
jest tworzone wMicrosoft\SqlServerExtension
.Notatka
Przed wydaniem w lipcu 2024 r.
SqlServerExtensionPermissionProvider
to zaplanowane zadanie. Działa co godzinę.Otwórz harmonogram zadań na serwerze i sprawdź, czy zaplanowane zadanie o nazwie
SqlServerExtensionPermissionProvider
jest tworzone wMicrosoft\SqlServerExtension
.Otwórz program SQL Server Management Studio i sprawdź nazwę logowania o nazwie
NT Service\SqlServerExtension
. Sprawdź, czy konto ma przypisane następujące uprawnienia:- Łączenie z bazą danych SQL
- Wyświetlanie stanu bazy danych
- Wyświetlanie stanu serwera
Zweryfikuj uprawnienia przy użyciu następujących zapytań:
Aby sprawdzić uprawnienia na poziomie serwera, uruchom następujące zapytanie:
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER");
Aby zweryfikować uprawnienia na poziomie bazy danych, zastąp
<database name>
nazwą jednej z baz danych i uruchom następujące zapytanie:EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database");