Compartilhar via


Configurar a identidade gerenciada e a autenticação do Microsoft Entra para SQL Server habilitado pelo Azure Arc

Aplica-se a: SQL Server 2025 (17.x)

Este artigo fornece instruções passo a passo para configurar a identidade gerenciada do Microsoft Entra ID para SQL Server, ativada pelo Azure Arc.

Para obter uma visão geral da identidade gerenciada com o SQL Server, consulte a identidade gerenciada do SQL Server habilitada pelo Azure Arc.

Pré-requisitos

Antes de poder usar uma identidade gerenciada com o SQL Server habilitado pelo Azure Arc, verifique se você atende aos seguintes pré-requisitos:

Habilitar a identidade gerenciada primária

Se você instalou a Extensão do Azure para SQL Server em seu servidor, poderá habilitar a identidade gerenciada primária para sua instância do SQL Server diretamente do portal do Azure. Também é possível habilitar a identidade gerenciada primária manualmente atualizando o registro, mas deve ser feito com extrema cautela.

Para habilitar a identidade gerenciada primária no portal do Azure, siga estas etapas:

  1. Acesse o SQL Server habilitado pelo recurso do Azure Arc no portal do Azure.

  2. Em Configurações, selecione Microsoft Entra ID e Purview para abrir a Microsoft Entra ID e Purview.

    Observação

    Se você não vir a opção Habilitar autenticação do Microsoft Entra ID , verifique se sua instância do SQL Server está conectada ao Azure Arc e se você tem a extensão SQL mais recente instalada.

  3. Na página Microsoft Entra ID e Purview, marque a caixa ao lado da opção usar uma identidade gerenciada primária e, em seguida, use Salvar para aplicar sua configuração.

    Captura de tela da opção Microsoft Entra no portal do Azure.

Conceder permissões de aplicação à identidade

Importante

Somente um Administrador de Funções Com Privilégios ou uma função superior pode conceder essas permissões.

A identidade gerenciada atribuída pelo sistema, que usa o nome do computador habilitado para Arc, deve ter as seguintes permissões de aplicativo do Microsoft Graph (funções de aplicativo):

  • User.Read.All: permite acesso às informações de usuário do Microsoft Entra.

  • GroupMember.Read.All: permite acesso às informações de grupo do Microsoft Entra.

  • Application.Read.ALL: permite o acesso às informações da entidade de serviço do Microsoft Entra (aplicativos).

Você pode usar o PowerShell para conceder permissões necessárias à identidade gerenciada. Como alternativa, você pode criar um grupo atribuível a função. Depois que o grupo for criado, atribua a função Leitores de Diretório ou a User.Read.All, GroupMember.Read.Alle Application.Read.All permissões ao grupo, e adicione todas as identidades gerenciadas atribuídas pelo sistema para seus computadores habilitados para Azure Arc ao grupo. Não recomendamos usar a função Leitores de Diretório em seu ambiente de produção.

O script do PowerShell a seguir concede as permissões necessárias à identidade gerenciada. Verifique se esse script é executado no PowerShell 7.5 ou em uma versão posterior e se o Microsoft.Graph módulo 2.28 ou posterior está instalado.

# 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."
    }
}

Criar logons e usuários

Siga as etapas no tutorial do Microsoft Entra para criar logons e usuários para a identidade gerenciada.