Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2025 (17.x)
En este artículo se proporcionan instrucciones detalladas para la configuración y ajuste de la identidad administrada de Microsoft Entra ID para SQL Server habilitado por Azure Arc.
Para obtener información general sobre la identidad administrada con SQL Server, consulte Identidad administrada para SQL Server habilitada por Azure Arc.
Prerrequisitos
Antes de poder usar una identidad administrada con SQL Server habilitada mediante Azure Arc, asegúrese de cumplir los siguientes requisitos previos:
- Compatible con SQL Server 2025 y versiones posteriores, ejecutándose en Windows.
- Conecte el SQL Server a Azure Arc.
- La versión más reciente de la extensión Azure para SQL Server.
Habilitación de la identidad administrada principal
Si ha instalado la extensión de Azure para SQL Server en el servidor, puede habilitar la identidad administrada principal para la instancia de SQL Server directamente desde el portal de Azure. También es posible habilitar manualmente la identidad administrada principal mediante la actualización del registro, pero debe realizarse con extrema precaución.
Para habilitar la identidad administrada principal en el portal de Azure, siga estos pasos:
Vaya al recurso SQL Server habilitado por Azure Arc en el portal de Azure.
En Settings, seleccione Microsoft Entra ID y Purview para abrir la página Microsoft Entra ID y Purview.
Nota:
Si no ve la opción Enable Microsoft Entra ID autenticación, asegúrese de que la instancia de SQL Server está conectada a Azure Arc y de que tiene instalada la extensión SQL más reciente.
En la página Microsoft Entra ID y Purview, active la casilla situada junto a Use una identidad administrada principal y, después, use Save para aplicar la configuración:
Conceda permisos de aplicación a la identidad
Importante
Solo un administrador de roles con privilegios o un rol superior pueden conceder estos permisos.
Para habilitar la autenticación Microsoft Entra para instancias de SQL Server, cada identidad administrada asignada por el sistema requiere User.Read.All, GroupMember.Read.All y permisos Application.Read.All para consultar Microsoft Graph. Para obtener más información sobre estos permisos, consulte:
- User.Read.All: permite el acceso a Microsoft Entra información de usuario.
- GroupMember.Read.All: Permite el acceso a información de grupo de Microsoft Entra.
- Application.Read.All: Permite el acceso a la información del principal de servicio de Microsoft Entra (aplicación).
Estos permisos son permisos de nivel de aplicación (roles de aplicación) y se deben asignar directamente a cada identidad administrada. No se pueden asignar manualmente a un grupo de seguridad de Microsoft Entra ni concederse a los miembros a través de la pertenencia a grupos. En el caso de los entornos con muchas máquinas, una alternativa es asignar el rol Directory Readers a un grupo de seguridad role-assignable Microsoft Entra grupo de seguridad y agregar las identidades administradas como miembros. A diferencia de los permisos de rol de aplicación, este rol de Microsoft Entra se puede conceder en el nivel de grupo, lo que simplifica la administración a escala. Sin embargo, Directory Readers concede acceso de lectura amplio en todos los objetos de directorio, superando significativamente los tres permisos de Graph API de destino. El rol Lectores de directorios no se recomienda para entornos de producción en los que se requiera acceso con privilegios mínimos.
El siguiente script de PowerShell concede los permisos necesarios a la identidad administrada. Asegúrese de que este script se ejecuta en PowerShell 7.5 o una versión posterior y tiene instalado el módulo Microsoft.Graph 2.28 o posterior.
# 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."
}
}
Crear inicios de sesión y usuarios
Siga los pasos del tutorial Microsoft Entra para crear inicios de sesión y usuarios para la identidad administrada.