Udostępnij za pośrednictwem


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:

  1. Tymczasowo dodaj konto usługi programu SQL Server do roli serwera sysadmin.
  2. Zezwalaj Deployer.exe na uruchamianie co najmniej raz, aby uprawnienia zostały ustawione.
  3. 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:

Włącz najmniejsze uprawnienia

  1. Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. 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
    
  3. Włącz najniższe uprawnienia za pomocą Azure CLI.

    Aby włączyć najmniejsze uprawnienia, ustaw flagę funkcji LeastPrivilege na true. 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 nazwie myrg:

    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:

  1. 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. 

  2. Otwórz harmonogram zadań na serwerze i sprawdź, czy zadanie sterowane zdarzeniami o nazwie SqlServerExtensionPermissionProvider jest tworzone w Microsoft\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 w Microsoft\SqlServerExtension.

  3. 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
  4. 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");