Habilitar a autenticação de banco de dados do Microsoft Entra
Esta unidade mostra como usar a ID do Microsoft Entra para autenticação com o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o Azure Synapse Analytics.
Observação
O Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure AD).
Como alternativa, você também pode configurar a autenticação do Microsoft Entra para SQL Server em Máquinas Virtuais do Azure.
Pré-requisitos
Para usar a autenticação do Microsoft Entra com o recurso SQL do Azure, você precisa dos seguintes pré-requisitos:
- Um locatário do Microsoft Entra preenchido com usuários e grupos.
- Um recurso SQL do Azure existente, como o Banco de Dados SQL do Azure ou a Instância Gerenciada de SQL do Azure.
Criar e preencher um locatário do Microsoft Entra
Antes de configurar a autenticação do Microsoft Entra para o recurso do SQL do Azure, você precisa criar um locatário do Microsoft Entra e preenchê-lo com usuários e grupos. Os locatários do Microsoft Entra podem ser gerenciados inteiramente no Azure ou usados para a federação de um Serviço de Domínio do Active Directory local.
Para obter mais informações, consulte:
- O que é o Microsoft Entra ID?
- Integrar suas identidades locais com o Microsoft Entra ID
- Adicione o nome de domínio personalizado ao Microsoft Entra ID
- O que é a Federação com o Microsoft Entra ID?
- Sincronização de diretório com o Microsoft Entra ID
- Gerenciar o Microsoft ID Entra usando o Windows PowerShell
- Portas e Protocolos Necessários para a Identidade Híbrida
Administrador do Microsoft Entra
Para usar a autenticação do Microsoft Entra com seu recurso, ele precisa ter o administrador do Microsoft Entra definido. Embora conceitualmente as etapas sejam as mesmas para o Banco de Dados SQL do Azure, o Azure Synapse Analytics e a Instância Gerenciada de SQL do Azure, esta seção descreve detalhadamente as diferentes APIs e experiências do portal para fazer isso por produto.
O administrador do Microsoft Entra também pode ser configurado quando o recurso SQL do Azure é criado. Se um administrador do Microsoft Entra já estiver configurado, ignore esta seção.
Banco de Dados SQL do Azure e Análise do Azure Synapse
Definir o administrador do Microsoft Entra habilita a autenticação do Microsoft Entra para seu servidor lógico para o Banco de Dados SQL do Azure e o Azure Synapse Analytics. Você pode definir um administrador do Microsoft Entra para seu servidor usando o portal do Azure, o PowerShell, a CLI do Azure ou as APIs REST.
No portal do Azure, você pode encontrar o nome do servidor lógico
- No campo nome do servidor, na página Visão geral do Banco de Dados SQL do Azure.
- No campo nome do servidor, na página Visão Geral do pool de SQL dedicado independente no Azure Synapse Analytics.
- No ponto de extremidade SQL relevante na página Visão geral do workspace do Azure Synapse Analytics.
- Portal do Azure
- PowerShell
- Azure CLI
- APIs REST
Para definir o administrador do Microsoft Entra para seu servidor lógico no portal do Azure, siga estas etapas:
- No painel Diretórios do portal do Azure + assinaturas, escolha o diretório que contém o recurso SQL do Azure como o diretório Atual.
- Pesquise servidores SQL e selecione o servidor lógico para o recurso de banco de dados para abrir o painel do SQL Server.
- No painel do SQL Server para seu servidor lógico, selecione a ID do Microsoft Entra em Configurações para abrir o painel ID do Microsoft Entra.
- No painel ID do Microsoft Entra, selecione Definir administrador para abrir o painel ID do Microsoft Entra.
- O painel ID do Microsoft Entra mostra todos os usuários, grupos e aplicativos em seu diretório atual e permite que você pesquise por nome, alias ou ID. Localize a identidade desejada para o administrador do Microsoft Entra e selecione-a e clique em Selecionar para fechar o painel.
- Na parte superior da página do Microsoft Entra ID do seu servidor lógico, selecione Salvar.
A ID do Objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicativos (entidades de serviço), a ID da aplicação é exibida.
O processo de alteração do administrador pode levar vários minutos. Em seguida, o novo administrador aparece no campo Administrador do Microsoft Entra.
Para remover o administrador, na parte superior da página ID do Microsoft Entra, selecione Remover administrador e, em seguida, selecione Salvar. Remover o administrador do Microsoft Entra desabilita a autenticação do Microsoft Entra para seu servidor lógico.
Observação
O administrador do Microsoft Entra é armazenado no banco de dados mestre do servidor como um usuário (entidade de banco de dados). Como os nomes de entidade de banco de dados devem ser exclusivos, o nome de exibição do administrador não pode ser o mesmo que o nome de qualquer usuário no banco de dados mestre do servidor. Se um usuário com o nome já existir, a configuração do administrador do Microsoft Entra falhará e reverterá, indicando que o nome já está em uso.
Instância Gerenciada de SQL do Azure
Definir o administrador do Microsoft Entra habilita a autenticação do Microsoft Entra para a Instância Gerenciada de SQL do Azure. Você pode definir um administrador do Microsoft Entra para sua instância gerenciada de SQL usando o portal do Azure, o PowerShell, a CLI do Azure ou as APIs REST.
Para conceder permissões de leitura da instância gerenciada de SQL à ID do Microsoft Entra usando o portal do Azure, entre como administrador de função com privilégios e siga estas etapas:
- No portal do Azure, no canto superior direito, selecione sua conta e escolha Alternar diretórios para confirmar qual diretório é o diretório Atual. Alterne diretórios, se necessário.
- No painel Diretórios do portal do Azure + assinaturas, escolha o diretório que contém sua instância gerenciada como o diretório atual.''
- Pesquise instâncias gerenciadas de SQL e selecione sua instância gerenciada para abrir o painel de instância gerenciada de SQL. Em seguida, selecione a ID do Microsoft Entra em Configurações para abrir o painel ID do Microsoft Entra para sua instância.
- No painel administrador do Microsoft Entra, selecione Definir administrador na barra de navegação para abrir o painel de ID do Microsoft Entra.
- No painel da ID do Microsoft Entra, pesquise um usuário, marque a caixa ao lado do usuário ou grupo para ser um administrador e pressione Selecionar para fechar o painel e voltar para a página de administração do Microsoft Entra para sua instância gerenciada. O painel ID do Microsoft Entra mostra todos os membros e grupos em seu diretório atual. Usuários ou grupos esmaecidos não podem ser selecionados porque não têm suporte como administradores do Microsoft Entra. Selecione a identidade que você deseja atribuir como administrador.
- Na barra de navegação da página de administração do Microsoft Entra para sua instância gerenciada, selecione Salvar para confirmar o administrador do Microsoft Entra. Após a conclusão da operação de alteração do administrador, o novo administrador aparecerá no campo administrador do Microsoft Entra. A ID do Objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicativos (entidades de serviço), a ID da aplicação é exibida.
Dica
Para remover o administrador, selecione Remover administrador na parte superior da página ID do Microsoft Entra e, em seguida, selecione Salvar.
Adicionar permissões do Microsoft Graph
A Instância Gerenciada de SQL precisa de permissões para ler a ID do Microsoft Entra para cenários como autorizar usuários que se conectam por meio de associação de grupo de segurança e criação de novos usuários. Para que a autenticação do Microsoft Entra funcione, você precisa atribuir a identidade da instância gerenciada à função Leitores de Diretório. É possível fazer isso usando o portal do Azure, a CLI do Azure ou o PowerShell.
Para algumas operações, o Banco de Dados SQL do Azure e o Azure Synapse Analytics também exigem permissões para consultar o Microsoft Graph, explicado nas permissões do Microsoft Graph. O Banco de Dados SQL do Azure e o Azure Synapse Analytics dão suporte a permissões refinadas do Graph para esses cenários, enquanto a Instância Gerenciada de SQL requer a função Leitores de Diretório. As permissões refinadas e sua atribuição são descritas em detalhes para permitir que as entidades de serviço criem usuários do Microsoft Entra.
Função de leitores de diretório
A página do Microsoft Entra ID para Instância Gerenciada de SQL no portal do Azure exibe uma faixa conveniente quando a instância não recebe as permissões de Leitor de Diretório.
- Selecione o banner na parte superior da página do Microsoft Entra ID e conceda permissão à identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário que representa a sua instância. Somente um Administrador de Funções Com Privilégios ou uma função superior em seu locatário pode executar essa operação.
- Quando a operação for bem-sucedida, uma notificação de êxito será exibida no canto superior direito:
O administrador do Microsoft Entra agora pode ser usado para criar entidades de segurança do servidor do Microsoft Entra (logons) e entidades de banco de dados (usuários). Para obter mais informações, consulte Integração do Microsoft Entra com a Instância Gerenciada de SQL do Azure.
Criar entidades de segurança do Microsoft Entra no SQL
Para se conectar a um banco de dados no Banco de Dados SQL ou no Azure Synapse Analytics com a autenticação do Microsoft Entra, uma entidade de segurança precisa ser configurada no banco de dados para essa identidade com pelo menos a permissão CONNECT.
Permissões do usuário do banco de dados
Quando um usuário de banco de dados é criado, ele recebe a permissão CONNECT para o banco de dados por padrão. Um usuário de banco de dados também herda permissões em duas circunstâncias:
- Se o usuário for membro de um grupo do Microsoft Entra que também recebe permissões no servidor.
- Se o usuário for criado a partir de um logon, ele herdará as permissões atribuídas pelo servidor do logon aplicável no banco de dados.
O gerenciamento de permissões para entidades de segurança de servidor e banco de dados funciona da mesma forma, independentemente do tipo de entidade de segurança (Microsoft Entra ID, autenticação SQL etc.). É recomendável conceder permissões a funções de banco de dados em vez de conceder permissões diretamente aos usuários. Em seguida, os usuários podem ser adicionados a funções com permissões apropriadas. Isso simplifica o gerenciamento de permissões de longo prazo e reduz a probabilidade de uma identidade manter o acesso passado quando for apropriado.
Para obter mais informações, consulte:
- Exemplos e permissões do mecanismo de banco de dados
- Blog: Noções básicas de permissão do Mecanismo de Banco de Dados
- Gerenciamento de funções e logons de bancos de dados especiais no Banco de Dados SQL do Azure
Usuários de banco de dados independente
Um usuário de banco de dados independente é um tipo de usuário SQL que não está conectado a um logon no banco de dados mestre. Para criar um usuário de banco de dados contido do Microsoft Entra, conecte-se ao banco de dados com uma identidade do Microsoft Entra que tenha pelo menos a permissão ALTER ANY USER. O exemplo T-SQL a seguir cria uma entidade de banco de dados Microsoft_Entra_principal_name do Microsoft Entra ID.
SQL
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [appName] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Usuários baseados em logon
Observação
As entidades de segurança do servidor do Microsoft Entra (logons) estão atualmente em versão prévia pública do Banco de Dados SQL do Azure e do Azure Synapse Analytics. Logons do Microsoft Entra geralmente estão disponíveis para a Instância Gerenciada de SQL do Azure e o SQL Server 2022.
Há suporte para entidades de segurança do servidor do Microsoft Entra (ou logons), o que significa que os usuários de banco de dados independentes não são necessários. As entidades de banco de dados (usuários) podem ser criadas com base em uma entidade de segurança do servidor, o que significa que os usuários do Microsoft Entra podem herdar permissões atribuídas no nível do servidor de um logon.
SQL
CREATE USER [appName] FROM LOGIN [appName];
Para obter mais informações, consulte Visão geral da Instância Gerenciada de SQL. Para obter sintaxe na criação de entidades de segurança do servidor do Microsoft Entra (logons), consulte CREATE LOGIN.
Usuários externos
Você não pode criar diretamente um usuário de banco de dados para uma identidade gerenciada em um locatário do Microsoft Entra diferente daquela associada à sua assinatura do Azure. No entanto, os usuários em outros diretórios podem ser importados para o diretório associado como usuários externos. Em seguida, eles podem ser usados para criar usuários de banco de dados independentes que podem acessar o banco de dados. Usuários externos também podem obter acesso por meio da associação em grupos do Microsoft Entra.
Exemplos: para criar um usuário de banco de dados independente representando um usuário de domínio federado ou gerenciado do Microsoft Entra:
SQL
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
Uma conta de usuário de domínio federado importada para um domínio gerenciado como um usuário externo deve usar a identidade de domínio gerenciado.
Considerações de nomenclatura
Caracteres especiais como dois pontos: ou "e" comercial &, quando incluídos como nomes de usuário nas instruções T-SQL CREATE LOGIN e CREATE USER, não são suportados.
O Microsoft Entra ID e o SQL do Azure divergem em seu design de gerenciamento de usuário de uma maneira fundamental: o Microsoft Entra ID permite que os nomes de exibição sejam duplicados em um locatário, enquanto o SQL do Azure exige que todas as entidades de segurança de servidor em um servidor ou instância e todas as entidades de banco de dados em um banco de dados tenham um nome exclusivo. Como o SQL do Azure usa diretamente o nome de exibição do Microsoft Entra da identidade ao criar entidades de segurança, isso pode resultar em erros ao criar usuários. Para resolver esse problema, o SQL do Azure lançou o aprimoramento WITH OBJECT_ID, atualmente em versão prévia, o que permite que os usuários especifiquem a ID de objeto do Microsoft Entra da identidade que está sendo adicionada ao servidor ou à instância.
Permissões do Microsoft Graph
O comando CREATE USER ... FROM EXTERNAL PROVIDER requer que o Azure SQL tenha acesso ao Microsoft Entra ID (o "provedor externo") em nome do usuário logado. Às vezes, surgem circunstâncias que fazem com que o Microsoft Entra ID retorne uma exceção ao SQL do Azure.
- Você pode encontrar o erro SQL 33134, que contém a mensagem de erro específica da ID do Microsoft Entra. O erro geralmente diz que o acesso é negado, que o usuário deve se registrar na MFA para acessar o recurso ou que o acesso entre aplicativos de primeira parte deve ser tratado por meio da pré-autorização. Nos dois primeiros casos, o problema geralmente é causado por políticas de Acesso Condicional que são definidas no locatário do Microsoft Entra do usuário: elas impedem que o usuário acesse o provedor externo. A atualização das políticas de Acesso Condicional para permitir o acesso ao aplicativo "00000003-0000-0000-c000-000000000000" (a ID do aplicativo da API do Microsoft Graph) deve resolver o problema. Se o erro diz que o acesso entre aplicativos de primeira parte deve ser tratado por meio da pré-autorização, o problema é porque o usuário está conectado como uma entidade de serviço. Em vez disso, o comando deverá ser bem-sucedido se for executado por um usuário.
- Se você receber um tempo limite de conexão expirado, talvez seja necessário definir o parâmetro TransparentNetworkIPResolution da cadeia de conexão como false. Para obter mais informações, consulte Problema de tempo limite de conexão com o .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Para obter mais informações sobre como criar usuários de banco de dados independentes com base em identidades do Microsoft Entra, consulte CREATE USER.
Configurar a autenticação multifator
Para melhorar a segurança no recurso do SQL do Azure, considere configurar a autenticação multifator (MFA)que solicita que o usuário use um segundo método alternativo para autenticar no banco de dados, como uma chamada telefônica ou um aplicativo autenticador.
Para usar a autenticação multifator com o recurso SQL do Azure, primeiro habilite a autenticação multifator e use uma política de acesso condicional para impor a MFA para o recurso SQL do Azure.
Conectar com o Microsoft Entra
Depois que a autenticação do Microsoft Entra tiver sido configurada, você poderá usá-la para se conectar ao recurso SQL com ferramentas da Microsoft, como o SQL Server Management Studio e o SQL Server Data Tools, e configurar aplicativos cliente para se conectar usando identidades do Microsoft Entra.
Solucionar problemas de autenticação do Microsoft Entra
Para obter diretrizes sobre como solucionar problemas, consulte Blog: Solução de problemas relacionados à autenticação do Microsoft Entra com o Banco de Dados SQL do Azure e o Azure Synapse.