Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
- SQL Server 2022
- SQL Server 2025
Base de Dados SQL do Azure & Azure SQL Managed Instance - SQL Server em VMs Azure
Este artigo fornece instruções passo a passo para definir e configurar a identidade gerida do Microsoft Entra ID para o SQL Server com suporte do Azure Arc.
Para uma visão geral da identidade gerida com SQL Server, veja Identidade gerida para SQL Server ativada por 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:
- Suportado para SQL Server 2025 e posteriores, em execução no Windows.
- Liga o teu SQL Server ao Azure Arc.
- A versão mais recente da extensão Azure para SQL Server.
Habilitar a identidade gerenciada principal
Se instalou a Extensão Azure para SQL Server no seu servidor, pode ativar a identidade gerida principal da sua instância do SQL Server diretamente a partir do portal do Azure. Também é possível habilitar a identidade gerenciada principal manualmente atualizando o registro, mas deve ser feito com extrema cautela.
- Portal do Azure
- manualmente
Para ativar a identidade gerida principal no portal Azure, siga estes passos:
Vai ao teu recurso SQL Server ativado pelo Azure Arc no portal Azure.
Em Settings, selecione Microsoft Entra ID e Purview para abrir as páginas Microsoft Entra ID e Purview.
Observação
Se não vires a opção Ativar autenticação Microsoft Entra ID, certifica-te de que a tua instância SQL Server está ligada à Azure Arc e que tens a mais recente extensão SQL instalada.
Na página Microsoft Entra ID e Purview, assinala a caixa ao lado de Usa uma identidade gerida primária e depois usa Save para aplicar a tua configuração:
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.
Para permitir a autenticação do Microsoft Entra para instâncias do SQL Server, cada identidade gerida pelo sistema requer as permissões User.Read.All, GroupMember.Read.All e Application.Read.All para consultar o Microsoft Graph. Para mais informações sobre estas permissões, veja:
- User.Read.All: Permite o acesso à informação do utilizador do Microsoft Entra.
- GroupMember.Read.All: Permite o acesso às informações do grupo Microsoft Entra.
- Application.Read.All: Permite o acesso à informação do principal de serviço Microsoft Entra (aplicação).
Estas permissões são permissões ao nível da aplicação (papéis de aplicação) e devem ser atribuídas diretamente a cada identidade gerida. Não podem ser atribuídas manualmente a um grupo de segurança da Microsoft Entra e concedidas aos membros através da adesão ao grupo. Para ambientes com muitas máquinas, uma alternativa é atribuir o papel Leitores de Diretório a um grupo de segurança Microsoft Entra atribuível a um papel e adicionar as identidades geridas como membros. Ao contrário das permissões de função de aplicação, esta função da Microsoft Entra pode ser concedida ao nível de grupo, simplificando a gestão em larga escala. No entanto, Leitores de Diretório concede acesso amplo de leitura em todos os objetos do diretório, superando significativamente as três permissões específicas da Graph API. O papel de Leitores do Diretório não é recomendado para ambientes de produção onde é necessário acesso com privilégios mínimos.
O script PowerShell a seguir concede as permissões necessárias para a identidade gerenciada. Certifique-se de que este script está a correr no PowerShell 7.5 ou numa versão posterior, e que tem instalado o módulo Microsoft.Graph 2.28 ou 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."
}
}
Criar logins e usuários
Siga os passos do tutorial Microsoft Entra para criar logins e utilizadores para a identidade gerida.