Partilhar via


Configurar identidade gerida e autenticação Microsoft Entra para SQL Server ativada pelo Azure Arc

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

Este artigo fornece instruções passo a passo para configurar a identidade gerida do Microsoft Entra ID para o SQL Server ativado pelo Azure Arc.

Para uma visão geral da identidade gerida com SQL Server, veja Identidade gerida para SQL Server ativada pelo Azure Arc.

Pré-requisitos

Antes de poder usar uma identidade gerida com o SQL Server ativado pelo Azure Arc, certifique-se de que cumpre os seguintes pré-requisitos:

Habilitar a identidade gerenciada principal

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 principal manualmente atualizando o registro, mas deve ser feito com extrema cautela.

Para habilitar a identidade gerenciada principal no portal do Azure, siga estas etapas:

  1. Vá para o recurso SQL Server habilitado pelo Azure Arc no portal do Azure.

  2. Em Configurações, selecione Microsoft Entra ID e Purview para abrir a página 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 ID e Purview do Microsoft Entra, marque a caixa ao lado de Usar uma identidade gerida principal e use Guardar para aplicar a sua configuração:

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

Conceder permissões de acesso ao aplicativo à identidade

Importante

Somente um Administrador de Função Privilegiada ou uma função superior pode conceder essas permissões.

A identidade gerida atribuída pelo sistema, que usa o nome da máquina com suporte para Arc, deve ter as seguintes permissões de aplicativo do Microsoft Graph (funções do aplicativo):

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

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

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

Você pode usar o PowerShell para conceder as permissões necessárias para a identidade gerenciada. Como alternativa, você pode criar um grupo atribuível por função. Depois de o grupo ser criado, atribua a função de Leitores de Diretório ou as permissões User.Read.All, GroupMember.Read.All e Application.Read.All ao grupo e adicione todas as identidades geridas pelo sistema atribuídas às suas máquinas com suporte a Azure Arc ao grupo. Não recomendamos o uso da função Leitores de Diretório em seu ambiente de produção.

O script PowerShell a seguir concede as permissões necessárias para a identidade gerenciada. Verifique se esse script é executado no PowerShell 7.5 ou em uma versão posterior e se o módulo 2.28 ou posterior está Microsoft.Graph 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 logins e usuários

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