Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server na VM do Azure
Este artigo ensina você a habilitar a autenticação do Microsoft Entra ID (antigo Azure Active Directory) para o SQL Server em VMs (máquinas virtuais) do Azure.
Note
É possível configurar a autenticação do Microsoft Entra para instâncias não registradas do SQL Server, como quando você tem várias instâncias do SQL Server na mesma VM.
Overview
A partir do SQL Server 2022, você pode se conectar ao SQL Server nas VMs do Azure usando um dos seguintes métodos de autenticação de identidade do Microsoft Entra:
- Senha oferece autenticação com credenciais do Microsoft Entra
- Universal com MFA adiciona autenticação multifator
- Integrado usa provedores de federação, como Serviços de Federação do Active Directory (ADFS), para habilitar experiências de SSO (logon único)
- Entidade de serviço habilita a autenticação a partir de Aplicativos Azure
- Identidade Gerenciada habilita a autenticação de aplicativos atribuídos a identidades do Microsoft Entra
Quando você cria um logon do Microsoft Entra para o SQL Server e quando um usuário se conecta usando esse logon, o SQL Server usa uma identidade gerenciada para consultar o Microsoft Graph. Ao habilitar a autenticação do Microsoft Entra ID para seu SQL Server na VM do Azure, você precisa fornecer uma identidade gerenciada que o SQL Server possa usar para se comunicar com o Microsoft Entra ID. Essa identidade gerenciada precisa ter permissões para consultar o Microsoft Graph.
Ao habilitar uma identidade gerenciada para um recurso no Azure, o limite de segurança da identidade é o recurso ao qual ele está anexado. Por exemplo, o limite de segurança de uma máquina virtual com as identidades gerenciadas para recursos do Azure habilitadas é a máquina virtual. Qualquer código em execução nessa VM pode chamar o ponto de extremidade das identidades gerenciadas e solicitar tokens. Ao habilitar uma identidade gerenciada para o SQL Server em VMs do Azure, a identidade é anexada à máquina virtual. Portanto, o limite de segurança é a máquina virtual. A experiência é semelhante a trabalhar com outros recursos que dão suporte a identidades gerenciadas. Para obter mais informações, leia as perguntas frequentes sobre as identidades gerenciadas.
As identidades gerenciadas atribuídas pelo sistema e pelo usuário usadas para a autenticação do Microsoft Entra com o SQL Server em VMs do Azure oferecem os seguintes benefícios:
- Identidade gerenciada atribuída pelo sistema oferece um processo de configuração simplificado. Como a identidade gerenciada tem o mesmo tempo de vida que a máquina virtual, não é necessário excluí-la separadamente quando você exclui a máquina virtual.
- Identidade gerenciada atribuída pelo usuário oferece escalabilidade, pois pode ser anexada e usada para autenticação do Microsoft Entra para vários SQL Server em VMs do Azure.
Para começar a usar identidades gerenciadas, examine Configurar identidades gerenciadas usando o portal do Azure.
Prerequisites
Para habilitar a autenticação do Microsoft Entra no SQL Server, você precisa dos seguintes pré-requisitos:
- Uso do SQL Server 2022.
- Registrar a VM do SQL Server na extensão Agente de IaaS do SQL Server em qualquer nuvem.
- Tenha uma identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário existente no mesmo locatário do Microsoft Entra que sua VM do SQL Server. Configurar identidades gerenciadas usando o portal do Azure para saber mais.
- CLI do Azure 2.48.0 ou posterior se você pretende usar a CLI do Azure para configurar a autenticação do Microsoft Entra para sua VM do SQL Server.
Conceder permissões
A identidade gerenciada que você escolhe para facilitar a autenticação entre o SQL Server e o Microsoft Entra ID precisa ter as três seguintes permissões de aplicativo do Microsoft Graph (funções de aplicativo): User.Read.All, GroupMember.Read.All e Application.Read.All.
Como alternativa, adicionar a identidade gerenciada à função Leitores de diretório do Microsoft Entra concede permissões suficientes. Outra maneira de atribuir a função Leitores de Diretório a uma identidade gerenciada é atribuir a função Leitores de Diretório a um grupo na ID do Microsoft Entra. Os proprietários do grupo podem adicionar a identidade gerenciada da Máquina Virtual como um membro desse grupo. Isso minimiza o envolvimento de administradores de função do Microsoft Entra e delega a responsabilidade aos proprietários do grupo.
Adicionar a identidade gerenciada à função
Esta seção explica como adicionar sua identidade gerenciada à função Leitores de Diretório na ID do Microsoft Entra. Você precisa ter privilégios de Administrador de Funções Privilegiadas para fazer alterações nas atribuições da função Leitores de Diretório. Se não tiver permissão suficiente, trabalhe com o administrador do Microsoft Entra para seguir essas etapas.
Para conceder à sua identidade gerenciada a função Leitores de Diretório, siga estas etapas.
Abra as funções e administradores da ID do Microsoft Entra no portal do Azure:
Digite Leitores de Diretório na caixa de pesquisa e selecione a função Leitores de Diretório para abrir a página Leitores de Diretório | Atribuições:
Na página Leitores de Diretório | Atribuições, selecione + Adicionar atribuições para abrir a página Adicionar atribuição.
Na página Adicionar atribuições , escolha Nenhum membro selecionado em Selecionar membros para abrir a página Selecionar um membro .
Na página Selecionar um membro, procure a identidade gerenciada que deseja usar com a VM do SQL Server e adicione-a à função Leitores de diretório. Para identidades gerenciadas atribuídas pelo sistema, localize o nome da VM. Use Select para confirmar a identidade e voltar para a página Adicionar atribuições .
Verifique se você vê sua identidade escolhida em Selecionar membros e selecione Avançar.
Verifique se o tipo de atribuição está definido como Ativo e se a caixa ao lado de Permanentemente atribuída está marcada. Insira uma justificativa comercial, como Adição de permissões da função Leitor de Diretório à identidade atribuída pelo sistema para VM2, e selecione Atribuir para salvar as configurações e volte à página Leitores de Diretório | Atribuições.
Na página Leitores de Diretório | Atribuições, confirme se você vê sua identidade recém-adicionada em Leitores de Diretório.
Adicionar permissões de função de aplicativo
Você pode usar o Azure PowerShell para conceder funções de aplicativo a uma identidade gerenciada. Para fazer isso, siga estas etapas:
Note
Os módulos Azure AD e MSOnline PowerShell estão preteridos desde 30 de março de 2024. Para saber mais, leia a atualização de substituição. Após essa data, o suporte a esses módulos se limitará à assistência à migração para o SDK do Microsoft Graph PowerShell e às correções de segurança. Os módulos preteridos continuarão funcionando até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (antigo Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas Frequentes sobre Migração. Observação: as versões 1.0.x do MSOnline poderão sofrer interrupções após 30 de junho de 2024.
Conectar o Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"Recupere a identidade gerenciada:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"Atribua a função
User.Read.Allà identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}Atribua a função
GroupMember.Read.Allà identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}Atribua a função
Application.Read.Allà identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Você pode validar se as permissões foram atribuídas à identidade gerenciada fazendo o seguinte:
- Vá para Microsoft Entra ID no portal do Azure.
- Escolha aplicativos Empresariais e selecione Todos os aplicativos em Gerenciar.
- Filtre o tipo de aplicativo por
Managed identities. - Selecione a identidade gerenciada e escolha Permissões em Segurança. Você deve conferir as seguintes permissões:
User.Read.All,GroupMember.Read.All,Application.Read.All.
Habilitar a comunicação de saída
Para que a autenticação do Microsoft Entra funcione, você precisará do seguinte:
- Comunicação de saída do SQL Server para o Microsoft Entra ID e o ponto de extremidade do Microsoft Graph.
- Comunicação de saída do cliente SQL para o Microsoft Entra ID.
As configurações de VM padrão do Azure permitem a comunicação de saída com o ponto de extremidade do Microsoft Graph, bem como do Microsoft Entra ID, mas alguns usuários optam por restringir a comunicação de saída usando um firewall no nível do sistema operacional ou o NSG (grupo de segurança de rede) de VNet do Azure.
Os firewalls na VM do SQL Server e qualquer cliente SQL precisam permitir o tráfego de saída nas portas 80 e 443.
A regra NSG de VNet do Azure para a VNet que hospeda sua VM do SQL Server deve ter o seguinte:
- Uma marcas de serviço de
AzureActiveDirectory. - Intervalos de porta de destino: 80, 443.
- Ação definida como Permitir.
- Uma prioridade alta (que é um número baixo).
Habilitar a autenticação do Microsoft Entra para a instância registrada
Ao registrar sua instância do SQL Server com a extensão do Agente IaaS do SQL, você pode habilitar a autenticação do Microsoft Entra para a instância registrada usando o portal do Azure, a CLI do Azure ou o PowerShell. O uso do portal do Azure ou da CLI do Azure para gerenciar sua instância só tem suporte na instância registrada do SQL Server.
Note
Depois que a autenticação do Microsoft Entra estiver habilitada, você poderá seguir as mesmas etapas nesta seção para atualizar a configuração para usar uma identidade gerenciada diferente.
Para habilitar a autenticação do Microsoft Entra na sua VM do SQL Server, siga estas etapas:
Navegue até o recurso de máquinas virtuais do SQL no portal do Azure.
Selecione Configuração de Segurança em Segurança.
Escolha Habilitar na autenticação do Microsoft Entra.
Escolha o tipo de identidade gerenciada na lista suspensa, atribuída pelo sistema ou atribuída pelo usuário. Se você escolher Atribuída pelo usuário, selecione a identidade que deseja usar para se autenticar no SQL Server na sua VM do Azure no menu suspenso Identidade gerenciada atribuída pelo usuário exibido.
Depois que a autenticação do Microsoft Entra estiver habilitada, você poderá seguir as mesmas etapas para alterar qual identidade gerenciada pode se autenticar em sua VM do SQL Server.
Note
O erro The selected managed identity does not have enough permissions for Microsoft Entra authentication indica que as permissões não foram atribuídas corretamente à identidade selecionada. Verifique a seção Conceder permissões para atribuir permissões adequadas.
Habilitar a autenticação do Microsoft Entra para instâncias não registradas
Se a instância do SQL Server não estiver registrada com a extensão do Agente IaaS do SQL, como quando você tiver várias instâncias do SQL Server na mesma VM, poderá habilitar a autenticação do Microsoft Entra usando o PowerShell. Você pode habilitar a autenticação do Microsoft Entra para instâncias não registradas específicas ou para todas as instâncias na VM.
Note
Para usar a autenticação do Microsoft Entra com instâncias não registradas no SQL Server em VMs do Azure, você deve ter pelo menos uma instância registrada com a extensão do Agente IaaS do SQL.
Ao usar o Set-AzVMExtension -ExtensionName "SqlIaasExtension" comando para habilitar a autenticação do Microsoft Entra para uma instância do SQL Server, considere o seguinte:
- As permissões da identidade gerenciada só são verificadas quando o
CheckPermissionsparâmetro é definido comotrue. - Especifique a ID do cliente do parâmetro de identidade
ClientIDpara usar uma identidade gerenciada atribuída pelo usuário. Quando oClientIDparâmetro está vazio, uma identidade gerenciada atribuída pelo sistema é usada. - Forneça uma lista de instâncias no parâmetro
EnableForGivenInstancespara habilitar a autenticação do Microsoft Entra para instâncias não registradas específicas. Caso contrário, use o parâmetroEnableForAllInstancespara habilitar a autenticação do Microsoft Entra para todas as instâncias não registradas na máquina virtual.
O exemplo a seguir habilita a autenticação do Microsoft Entra para todas as instâncias na VM usando uma identidade atribuída pelo sistema:
Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":"", "EnableForAllInstances":true, "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'
O exemplo a seguir habilita a autenticação do Microsoft Entra para instâncias não registradas específicas usando uma identidade atribuída pelo usuário:
Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":$clientId, "EnableForGivenInstances":["MSSQLSERVER","MSSQLSERVER01"], "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'
Criar logons e usuários
Siga as etapas no tutorial do Microsoft Entra para criar logons e usuários para a identidade gerenciada.
Conecte-se à sua instância
Siga as instruções no tutorial do Microsoft Entra para se conectar à instância do SQL Server usando a autenticação do Microsoft Entra.
Limitations
Considere as seguintes limitações:
- A autenticação do Microsoft Entra só tem suporte no SQL Server 2022 em execução em VMs do Windows registradas na extensão do Agente de IaaS do SQL, implantada em uma nuvem.
- O gerenciamento da autenticação do Microsoft Entra no portal do Azure só está disponível para instâncias compatíveis com a extensão do Agente IaaS do SQL, como uma instância padrão ou uma única instância nomeada. Use a CLI do Azure ou o PowerShell para gerenciar instâncias adicionais de autenticação do Microsoft Entra na VM do SQL Server que não estão registradas com a extensão do Agente IaaS do SQL.
- Não há suporte para o uso da autenticação Microsoft Entra com instâncias de cluster de failover.
- A identidade que você escolhe para autenticar no SQL Server precisa ter a função Leitores de Diretório na ID do Microsoft Entra ou as seguintes três permissões de aplicativo do Microsoft Graph (funções de aplicativo):
User.Read.All,GroupMember.Read.AlleApplication.Read.All. - Depois que a autenticação do Microsoft Entra é habilitada, não há como desativá-la.
- Atualmente, não há suporte para autenticação no SQL Server em VMs do Azure por meio da autenticação do Microsoft Entra usando o método FIDO2 .
Próximas etapas
Examine as práticas recomendadas de segurança para o SQL Server.
Para ver outros artigos relacionados à execução do SQL Server em VMs do Azure, confira Visão geral do SQL Server em Máquinas Virtuais do Azure. Caso tenha dúvidas sobre as máquinas virtuais do SQL Server, confira as Perguntas frequentes.
Para saber mais, confira os outros artigos desta série de melhores práticas: