SQL Server uitvoeren die is ingeschakeld door Azure Arc met minimale bevoegdheden
van toepassing op:SQL Server-
Het informatiebeveiligingsprincipe van minimale bevoegdheden bevestigt dat accounts en toepassingen alleen toegang hebben tot de gegevens en bewerkingen die ze nodig hebben. Als SQL Server is ingeschakeld door Azure Arc, kunt u de agentextensieservice uitvoeren met minimale bevoegdheden. In dit artikel wordt uitgelegd hoe u de agentextensieservice uitvoert met minimale bevoegdheden.
Als u de service optioneel wilt configureren voor uitvoering met minimale bevoegdheden, volgt u de stappen in dit artikel. Momenteel wordt de service niet automatisch uitgevoerd met minimale bevoegdheden.
Windows-serviceaccounts en -machtigingen configureren voor Azure-extensie voor SQL Server beschrijft de machtigingen met minimale bevoegdheden voor de agentextensieservice.
Notitie
Bestaande servers met de extensie uit de release van november 2024 of hoger hebben automatisch de configuratie met minimale bevoegdheden toegepast. Deze toepassing wordt geleidelijk uitgevoerd.
Als u automatische toepassing van minimale bevoegdheden wilt voorkomen, blokkeert u uitbreidingsupgrades naar de release van november 2024.
Nadat u de agentextensieservice hebt geconfigureerd voor uitvoering met minimale bevoegdheden, wordt het NT Service\SQLServerExtension
-serviceaccount gebruikt.
Het NT Service\SQLServerExtension
-account is een lokaal Windows-serviceaccount:
- Gemaakt en beheerd door de Azure-extensie voor SQL Server wanneer de optie voor minimale bevoegdheden is ingeschakeld.
- De minimaal vereiste machtigingen en bevoegdheden verleend om de Azure-extensie voor sql Server-service uit te voeren op het Windows-besturingssysteem. Het heeft alleen toegang tot mappen en directories die worden gebruikt voor het lezen en opslaan van configuraties of voor het schrijven van logboeken.
- Toestemming verleend om verbinding te maken en query's uit te voeren in SQL Server met een nieuwe aanmelding, specifiek voor dat serviceaccount waarvoor de minimale machtigingen zijn vereist. Minimale machtigingen zijn afhankelijk van de ingeschakelde functies.
- Bijgewerkt wanneer machtigingen niet meer nodig zijn. Machtigingen worden bijvoorbeeld ingetrokken wanneer u een functie uitschakelt, configuratie met minimale bevoegdheden uitschakelt of de Azure-extensie voor SQL Server verwijdert. Intrekking zorgt ervoor dat er geen machtigingen meer nodig zijn nadat ze niet meer nodig zijn.
Voorwaarden
In deze sectie vindt u de systeemvereisten en hulpprogramma's die u nodig hebt om het voorbeeld in dit artikel te voltooien.
Systeemvereisten
Voor de configuratie met minimale bevoegdheden is het volgende vereist:
- Windows Server 2012 of hoger
- SQL Server 2012 of hoger
- Het SQL Server-serviceaccount moet lid zijn van de
sysadmin
vaste serverfunctie - Alle databases moeten online zijn en kunnen worden bijgewerkt
De configuratie met minimale bevoegdheden wordt momenteel niet ondersteund in Linux.
Andere vereisten, zoals vermeld in Vereisten: SQL Server ingeschakeld door Azure Arc, zijn nog steeds van toepassing.
SQL Server serviceaccount
Het SQL Server-serviceaccount is standaard lid van de sysadmin
vaste serverfunctie.
Zoals vermeld in de vereisten, moet het SQL Server-serviceaccount lid zijn van de sysadmin
vaste serverfunctie op elk SQL Server-exemplaar. De Azure-extensie voor SQL Server heeft een proces met de naam Deployer.exe
dat tijdelijk wordt uitgevoerd als NT AUTHORITY\SYSTEM
wanneer:
- Functies zijn ingeschakeld of uitgeschakeld
- SQL Server-exemplaren worden toegevoegd of verwijderd
Deployer.exe
het SQL Server-serviceaccount imiteert om verbinding te maken met SQL Server en machtigingen toe te voegen of te verwijderen in server- en databaserollen, afhankelijk van welke functies zijn ingeschakeld of uitgeschakeld om ervoor te zorgen dat de Azure-extensie voor SQL Server de minste bevoegdheden gebruikt die vereist zijn. Als u deze machtigingen wilt wijzigen, moet het SQL Server-serviceaccount lid zijn van de sysadmin
-serverfunctie.
Als u dit proces met meer controle wilt beheren, zodat het SQL Server-serviceaccount altijd geen lid is van de serverrol sysadmin, voert u de volgende stappen uit:
- Voeg tijdelijk het SQL Server-serviceaccount toe aan de serverfunctie sysadmin.
- Laat
Deployer.exe
minstens één keer draaien, zodat de machtigingen zijn ingesteld. - Verwijder het SQL Server-serviceaccount uit de rol sysadmin.
Herhaal deze procedure wanneer functies zijn ingeschakeld of uitgeschakeld of SQL Server-exemplaren worden toegevoegd om Deployer.exe
de minste bevoegdheden te verlenen die vereist zijn.
Gereedschap
Als u de stappen in dit artikel wilt uitvoeren, hebt u de volgende hulpprogramma's nodig:
- Azure CLI
-
arcdata
Azure CLI-extensie versie1.5.9
of hoger - Azure-extensie voor SQL Server-versie
1.1.2504.99
of hoger
Minimale bevoegdheden inschakelen
Meld u aan met Azure CLI.
az login
Controleer de
arcdata
-extensieversie.az extension list -o table
Als de resultaten een ondersteunde versie van
arcdata
bevatten, gaat u verder met de volgende stap.Installeer of werk de
arcdata
Azure CLI-extensie indien nodig bij.De extensie installeren:
az extension add --name arcdata
De extensie bijwerken:
az extension update --name arcdata
Schakel minimale bevoegdheden in met Azure CLI.
Als u minimale bevoegdheden wilt inschakelen, stelt u de
LeastPrivilege
functievlag in optrue
. Voer de volgende opdracht uit met bijgewerkte waarden voor de<resource-group>
en<machine-name>
om deze taak te voltooien.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Met de volgende opdracht kunt u bijvoorbeeld minimale bevoegdheden inschakelen voor een server met de naam
myserver
in een resourcegroep met de naammyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
De configuratie van minimale bevoegdheden controleren
Ga als volgt te werk om te controleren of uw SQL Server die is ingeschakeld door Azure Arc is geconfigureerd voor uitvoering met minimale bevoegdheden:
In de Windows-services zoek je de Microsoft SQL Server Extension Service-service op. Controleer of de service draait als het serviceaccount
NT Service\SqlServerExtension
.Open taakplanner op de server en controleer of een gebeurtenisgestuurde taak met de naam
SqlServerExtensionPermissionProvider
wordt gemaakt onderMicrosoft\SqlServerExtension
.Notitie
Vóór de release van juli 2024 is
SqlServerExtensionPermissionProvider
een geplande taak. Het draait elk uur.Open de taakplanner op de server en controleer of een geplande taak met de naam
SqlServerExtensionPermissionProvider
is gemaakt onderMicrosoft\SqlServerExtension
.Open SQL Server Management Studio en controleer de aanmelding met de naam
NT Service\SqlServerExtension
. Controleer of aan het account deze machtigingen zijn toegewezen:- Verbinding maken met SQL
- Databasestatus weergeven
- Serverstatus weergeven
Valideer de machtigingen met de volgende query's:
Voer de volgende query uit om machtigingen op serverniveau te controleren:
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER");
Als u machtigingen op databaseniveau wilt controleren, vervangt u
<database name>
door de naam van een van uw databases en voert u de volgende query uit:EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database");