Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
- SQL Server 2022
- SQL Server 2025
Azure SQL Database & Azure SQL Managed Instance - SQL Server na virtuálních počítačích Azure
Tento článek obsahuje podrobné pokyny k nastavení a konfiguraci spravované identity Microsoft Entra ID pro SQL Server, povolené pomocí Azure Arc.
Přehled spravované identity s SQL Server najdete v tématu Spravovaná identita pro SQL Server povolenou Azure Arc.
Požadavky
Než budete moct používat spravovanou identitu s SQL Server povolenou Azure Arc, ujistěte se, že splňujete následující požadavky:
- Podporováno pro SQL Server 2025 a novější a běží na Windows.
- Připojte SQL Server k Azure Arc.
- Nejnovější verze rozšíření Azure pro SQL Server
Povolte primární spravovanou identitu
Pokud jste na server nainstalovali rozšíření Azure pro SQL Server, můžete pro instanci SQL Server povolit primární spravovanou identitu přímo z portálu Azure. Primární spravovanou identitu je také možné povolit ručně aktualizací registru, ale měla by být provedena s extrémní opatrností.
Pokud chcete na portálu Azure povolit primární spravovanou identitu, postupujte takto:
Na portálu Azure přejděte ke svému prostředku SQL Serveru povolenému službou Azure Arc.
V části Nastavení vyberte Microsoft Entra ID a Purview a otevřete stránku Microsoft Entra ID a Purview.
Poznámka:
Pokud možnost ověřování Enable Microsoft Entra ID nevidíte, ujistěte se, že je vaše instance SQL Server připojená k Azure Arc a že máte nainstalované nejnovější rozšíření SQL.
Na stránce Microsoft Entra ID a Purview zaškrtněte políčko vedle položky Použít primární spravovanou identitu a potom použijte Save použít konfiguraci:
Udělení oprávnění aplikace pro identitu
Důležité
Tato oprávnění může udělit pouze správce privilegovaných rolí nebo vyšší role.
Aby bylo možné povolit ověřování Microsoft Entra pro instance SQL Server, vyžaduje každá spravovaná identita přiřazená systémem User.Read.All, GroupMember.Read.All a Application.Read.All oprávnění k dotazování Microsoft Graph. Další informace o těchto oprávněních najdete tady:
- User.Read.All: Umožňuje přístup k informacím o uživateli Microsoft Entra.
- GroupMember.Read.All: Umožňuje přístup k informacím skupiny Microsoft Entra.
- Application.Read.All: Umožňuje přístup k informacím o objektu typu "service principal" (aplikace) Microsoft Entra.
Tato oprávnění jsou oprávnění na úrovni aplikace (role aplikací) a musí být přiřazena přímo ke každé spravované identitě. Nemůžou být ručně přiřazeny ke skupině zabezpečení Microsoft Entra a uděleny členům prostřednictvím členství ve skupině. Pro prostředí s mnoha počítači je alternativou přiřadit Directory Readers role-assignovatelné skupině zabezpečení Microsoft Entra a přidání spravovaných identit jako členů. Na rozdíl od oprávnění role aplikace může být tato role Microsoft Entra udělena na úrovni skupiny, což zjednodušuje správu ve velkém měřítku. Directory Readers však uděluje široký přístup pro čtení napříč všemi objekty adresáře, což výrazně překračuje tři cílená oprávnění Graph API. Role Čtenáři adresáře se nedoporučuje pro produkční prostředí, kde je vyžadován přístup s nejnižšími oprávněními.
Následující skript PowerShellu udělí požadovaná oprávnění spravované identitě. Ujistěte se, že je tento skript spuštěný v PowerShellu 7.5 nebo novější verzi a má nainstalovaný Microsoft.Graph modul 2.28 nebo novější.
# Set your Azure tenant and managed identity name
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'
# Connect to Microsoft Graph
try {
Connect-MgGraph -TenantId $tenantID -ErrorAction Stop
Write-Output "Connected to Microsoft Graph successfully."
}
catch {
Write-Error "Failed to connect to Microsoft Graph: $_"
return
}
# Get Microsoft Graph service principal
$graphAppId = '00000003-0000-0000-c000-000000000000'
$graphSP = Get-MgServicePrincipal -Filter "appId eq '$graphAppId'"
if (-not $graphSP) {
Write-Error "Microsoft Graph service principal not found."
return
}
# Get the managed identity service principal
$managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '$managedIdentityName'"
if (-not $managedIdentity) {
Write-Error "Managed identity '$managedIdentityName' not found."
return
}
# Define roles to assign
$requiredRoles = @(
"User.Read.All",
"GroupMember.Read.All",
"Application.Read.All"
)
# Assign roles using scoped syntax
foreach ($roleValue in $requiredRoles) {
$appRole = $graphSP.AppRoles | Where-Object {
$_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application"
}
if ($appRole) {
try {
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentity.Id `
-PrincipalId $managedIdentity.Id `
-ResourceId $graphSP.Id `
-AppRoleId $appRole.Id `
-ErrorAction Stop
Write-Output "Successfully assigned role '$roleValue' to '$managedIdentityName'."
}
catch {
Write-Warning "Failed to assign role '$roleValue': $_"
}
}
else {
Write-Warning "Role '$roleValue' not found in Microsoft Graph AppRoles."
}
}
Vytváření přihlášení a uživatelů
Postupujte podle kroků v kurzu Microsoft Entra a vytvořte přihlášení a uživatele pro spravovanou identitu.