Configurar e gerir a autenticação do Microsoft Entra com o SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure Azure SQLManaged InstanceAzure Synapse Analytics

Este artigo mostra como criar e preencher um locatário do Microsoft Entra e usar o Microsoft Entra ID (anteriormente Azure Ative Directory) com o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure e o Azure Synapse Analytics. Para obter uma visão geral, consulte Autenticação do Microsoft Entra.

Nota

Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.

Métodos de autenticação do Microsoft Entra.

O Microsoft Entra ID suporta os seguintes métodos de autenticação:

  • identidades apenas na cloud do Microsoft Entra
  • Identidades híbridas do Microsoft Entra que suportam:
    • Autenticação na nuvem com duas opções acopladas ao logon único (SSO) contínuo
      • Autenticação de hash de senha do Microsoft Entra
      • Autenticação de passagem do Microsoft Entra
    • Autenticação federada

Para obter mais informações sobre os métodos de autenticação do Microsoft Entra e qual escolher, consulte Escolher o método de autenticação correto para sua solução de identidade híbrida do Microsoft Entra.

Para obter mais informações sobre identidades, configuração e sincronização híbridas do Microsoft Entra, consulte:

Criar e preencher um locatário do Microsoft Entra

Crie um locatário do Microsoft Entra e preencha-o 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 Ative Directory local.

Para obter mais informações, consulte:

Associar ou adicionar uma assinatura do Azure ao Microsoft Entra ID

  1. Associe sua assinatura do Azure à ID do Microsoft Entra tornando o diretório um diretório confiável para a assinatura do Azure que hospeda o banco de dados. Para obter detalhes, consulte Associar ou adicionar uma assinatura do Azure ao seu locatário do Microsoft Entra.

  2. Use o seletor de diretório no portal do Azure para alternar para a assinatura associada ao domínio.

    Importante

    Cada assinatura do Azure tem uma relação de confiança com uma instância do Microsoft Entra. Ele confia nesse diretório para autenticar usuários, serviços e dispositivos. Várias subscrições podem confiar no mesmo diretório, mas uma subscrição apenas pode confiar num diretório. Essa relação de confiança que uma assinatura tem com um diretório é diferente da de uma assinatura com todos os outros recursos no Azure (sites, bancos de dados e assim por diante), que são mais parecidos com recursos filhos de uma assinatura. Em caso de expiração de uma subscrição, será interrompido o acesso a esses outros recursos associados à subscrição também. No entanto, o diretório permanece no Azure e você pode associar outra assinatura a esse diretório e continuar a gerenciar os usuários do diretório. Para obter mais informações sobre recursos, consulte Noções básicas sobre acesso a recursos no Azure. Para saber mais sobre essa relação de confiança, consulte Como associar ou adicionar uma assinatura do Azure à ID do Microsoft Entra.

Microsoft Entra admin com um servidor na Base de Dados SQL

Cada servidor lógico no Azure (que hospeda o Banco de Dados SQL ou o Azure Synapse) começa com uma única conta de administrador de servidor que é o administrador de todo o servidor . Crie uma segunda conta de administrador como uma conta do Microsoft Entra. Essa entidade é criada como um usuário de banco de dados contido no master banco de dados do servidor. As contas de administrador são membros da função db_owner em cada banco de dados de usuário, e cada banco de dados de usuário é inserido como o usuário dbo . Para obter mais informações sobre contas de administrador, consulte Gerenciando bancos de dados e logons.

O administrador do Microsoft Entra deve ser configurado para os servidores primário e secundário ao usar o Microsoft Entra ID com replicação geográfica. Se um servidor não tiver um administrador do Microsoft Entra, os logins e usuários do Microsoft Entra receberão um Cannot connect erro no servidor.

Nota

Os usuários que não se baseiam em uma conta do Microsoft Entra (incluindo a conta de administrador do servidor) não podem criar usuários baseados no Microsoft Entra, porque eles não têm permissão para validar usuários de banco de dados propostos com o Microsoft Entra ID.

Provisionar o Microsoft Entra admin (Instância Gerenciada SQL)

Importante

Siga estas etapas somente se estiver provisionando uma Instância Gerenciada SQL do Azure. Esta operação só pode ser executada por um Administrador Global ou um Administrador de Função Privilegiada no Microsoft Entra ID.

Você pode atribuir a função Leitores de Diretório a um grupo no Microsoft Entra ID. Os proprietários do grupo podem então adicionar a identidade da instância gerenciada como um membro desse grupo, o que permite provisionar um administrador do Microsoft Entra para a Instância Gerenciada do SQL. Para obter mais informações sobre esse recurso, consulte Função de leitores de diretório no Microsoft Entra para Azure SQL.

Sua Instância Gerenciada SQL precisa de permissão para ler o ID do Microsoft Entra para realizar tarefas como autenticação de usuários por meio de associação a grupos de segurança ou criação de novos usuários. Para que isso funcione, você deve conceder a permissão SQL Managed Instance para ler o Microsoft Entra ID. Você pode fazer isso usando o portal do Azure ou o PowerShell.

Portal do Azure

Para conceder à sua Instância Gerida SQL permissões de leitura ao Microsoft Entra ID utilizando o portal do Azure, inicie sessão como Administrador Global e siga estes passos:

  1. No portal do Azure, no canto superior direito, selecione sua conta e escolha Alternar diretórios para confirmar qual diretório é seu diretório atual. Mude de diretório, se necessário.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Escolha o diretório correto do Microsoft Entra como o diretório atual.

    Esta etapa vincula a assinatura associada à ID do Microsoft Entra à Instância Gerenciada do SQL, garantindo que o locatário do Microsoft Entra e a Instância Gerenciada do SQL usem a mesma assinatura.

  3. Agora, você pode escolher seu administrador do Microsoft Entra para sua Instância Gerenciada SQL. Para isso, vá para seu recurso de instância gerenciada no portal do Azure e selecione Microsoft Entra admin em Configurações.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

  4. Selecione o banner na parte superior da página de administração do Microsoft Entra e conceda permissão ao usuário atual.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

  5. Depois que a operação for bem-sucedida, a seguinte notificação aparecerá no canto superior direito:

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Na página de administração do Microsoft Entra, selecione Definir administrador na barra de navegação para abrir o painel ID do Microsoft Entra.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. No painel ID do Microsoft Entra, procure 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 dentro do diretório atual. Não é possível selecionar usuários ou grupos acinzentados porque não há suporte para administradores do Microsoft Entra. Consulte a lista de administradores suportados em Recursos e limitações do Microsoft Entra. O controle de acesso baseado em função do Azure (Azure RBAC) se aplica somente ao portal do Azure e não é propagado para o Banco de Dados SQL, a Instância Gerenciada do SQL ou a Sinapse do Azure.

  8. 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.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    O processo de mudança de administrador pode levar vários minutos. Em seguida, o novo administrador aparece na caixa de administração 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 do aplicativo é exibida.

Depois de provisionar um administrador do Microsoft Entra para sua instância gerenciada do SQL, você pode começar a criar entidades de servidor (logons) do Microsoft Entra com a sintaxe CREATE LOGIN . Para obter mais informações, consulte Visão geral da instância gerenciada SQL.

Gorjeta

Para remover um administrador mais tarde, na parte superior da página de administração do Microsoft Entra, selecione Remover administrador e, em seguida, selecione Guardar.

PowerShell

Para usar o PowerShell para conceder permissões de leitura da Instância Gerenciada SQL à ID do Microsoft Entra, execute este script:

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
 
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role."
}

PowerShell para instância gerenciada do SQL

Para executar cmdlets do PowerShell, você precisa ter o Azure PowerShell instalado e em execução. Veja Como instalar e configurar o Azure PowerShell para informações detalhadas.

Importante

A Instância Gerenciada SQL do Azure ainda dá suporte ao módulo PowerShell Azure Resource Manager (RM), mas todo o desenvolvimento futuro é para o módulo Az.Sql. O módulo AzureRM receberá correções de bugs até pelo menos dezembro de 2020. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo Az do Azure PowerShell.

Para provisionar um administrador do Microsoft Entra, execute os seguintes comandos do Azure PowerShell:

  • Connect-AzAccount
  • Select-AzSubscription

Os cmdlets usados para provisionar e gerenciar o administrador do Microsoft Entra para sua Instância Gerenciada SQL estão listados na tabela a seguir:

Nome do cmdlet Description
Set-AzSqlInstanceActiveDirectoryAdministrator Provisiona um administrador do Microsoft Entra para a Instância Gerenciada SQL na assinatura atual. (Deve ser da assinatura atual)
Remove-AzSqlInstanceActiveDirectoryAdministrator Remove um administrador do Microsoft Entra para a Instância Gerenciada SQL na assinatura atual.
Get-AzSqlInstanceActiveDirectoryAdministrator Retorna informações sobre um administrador do Microsoft Entra para a Instância Gerenciada SQL na assinatura atual.

O comando a seguir obtém informações sobre um administrador do Microsoft Entra para uma Instância Gerenciada SQL chamada ManagedInstance01 associada a um grupo de recursos chamado ResourceGroup01.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

O comando a seguir provisiona um grupo de administradores do Microsoft Entra chamado DBAs para a Instância Gerenciada SQL chamada ManagedInstance01. Este servidor está associado ao grupo de recursos ResourceGroup01.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

O comando a seguir remove o administrador do Microsoft Entra para a Instância Gerenciada SQL chamada ManagedInstanceName01 associada ao grupo de recursos ResourceGroup01.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Provisionar o Microsoft Entra admin (Banco de dados SQL)

Importante

Siga estas etapas somente se estiver provisionando um servidor para o Banco de Dados SQL ou a Sinapse do Azure.

Os dois procedimentos a seguir mostram como provisionar um administrador do Microsoft Entra para seu servidor no portal do Azure e usando o PowerShell.

Portal do Azure

  1. No portal do Azure, no canto superior direito, selecione sua conta e escolha Alternar diretório para abrir a página Diretórios + assinaturas. Escolha o diretório Microsoft Entra, que contém seu Banco de Dados SQL do Azure ou o Azure Synapse Analytics como o diretório Atual.

  2. Pesquise servidores SQL e selecione o servidor lógico para o Banco de Dados SQL do Azure.

    Search for and select SQL servers.

    Nota

    Nesta página, antes de selecionar SQL servers, você pode selecionar a estrela ao lado do nome para favoritar a categoria e adicionar SQL servers ao menu de navegação esquerdo.

    Considere também visitar seu painel SQL do Azure.

  3. Na página SQL server, selecione Microsoft Entra ID.

  4. Na página ID do Microsoft Entra, selecione Definir administrador para abrir o painel ID do Microsoft Entra

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. No painel ID do Microsoft Entra, procure um usuário e selecione o usuário ou grupo para ser um administrador. Use Selecionar para confirmar sua escolha e feche o painel para retornar à página de ID do Microsoft Entra do seu servidor lógico. (O O painel ID do Microsoft Entra mostra todos os membros e grupos do diretório atual. Não é possível selecionar usuários ou grupos acinzentados porque não há suporte para administradores do Microsoft Entra. Consulte a lista de administradores suportados na seção Recursos e limitações do Microsoft Entra em Usar a autenticação do Microsoft Entra com o Banco de Dados SQL ou o Azure Synapse.) O controle de acesso baseado em função do Azure (Azure RBAC) se aplica somente ao portal e não é propagado para o servidor.

  6. Na parte superior da página ID do Microsoft Entra para seu servidor lógico, selecione Salvar.

    Screenshot shows the option to save a Microsoft Entra admin.

    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 do aplicativo é exibida.

O processo de mudança de administrador pode levar vários minutos. Em seguida, o novo administrador aparece no campo admin do Microsoft Entra.

Nota

Ao configurar o administrador do Microsoft Entra, o novo nome de administrador (usuário ou grupo) ainda não pode estar presente no banco de dados virtual master como um usuário de autenticação de servidor. Se estiver presente, a configuração do administrador do Microsoft Entra falha e é revertida, indicando que esse administrador (nome) já existe. Como um usuário de autenticação de servidor não faz parte do ID do Microsoft Entra, qualquer esforço para se conectar ao servidor usando a autenticação do Microsoft Entra falhará.

Para remover o administrador mais tarde, na parte superior da página ID do Microsoft Entra, selecione Remover administrador e, em seguida, selecione Guardar. Isso desabilita a autenticação do Microsoft Entra para seu servidor lógico.

PowerShell para Banco de Dados SQL e Sinapse do Azure

Para executar cmdlets do PowerShell, você precisa ter o Azure PowerShell instalado e em execução. Veja Como instalar e configurar o Azure PowerShell para informações detalhadas. Para provisionar um administrador do Microsoft Entra, execute os seguintes comandos do Azure PowerShell:

  • Connect-AzAccount
  • Select-AzSubscription

Cmdlets usados para provisionar e gerenciar o Microsoft Entra admin para Banco de Dados SQL e Azure Synapse:

Nome do cmdlet Description
Set-AzSqlServerActiveDirectoryAdministrator Provisiona um administrador do Microsoft Entra para o servidor que hospeda o Banco de Dados SQL ou o Azure Synapse. (Deve ser da assinatura atual)
Remove-AzSqlServerActiveDirectoryAdministrator Remove um administrador do Microsoft Entra para o servidor que hospeda o Banco de Dados SQL ou o Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministrator Retorna informações sobre um administrador do Microsoft Entra atualmente configurado para o servidor que hospeda o Banco de Dados SQL ou o Azure Synapse.

Use o comando PowerShell get-help para ver mais informações sobre cada um desses comandos. Por exemplo, get-help Set-AzSqlServerActiveDirectoryAdministrator.

O script a seguir provisiona um grupo de administradores do Microsoft Entra chamado DBA_Group (ID 40b79501-b343-44ed-9ce7-da4c8cc7353fdo objeto) para o servidor demo_server em um grupo de recursos chamado Group-23:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

O parâmetro de entrada DisplayName aceita o nome de exibição do Microsoft Entra ID ou o Nome Principal do Usuário. Por exemplo, DisplayName="John Smith" e DisplayName="johns@contoso.com". Para grupos do Microsoft Entra apenas o nome de exibição do Microsoft Entra ID é suportado.

Nota

O comando Set-AzSqlServerActiveDirectoryAdministrator Azure PowerShell não impede que você provisione administradores do Microsoft Entra para usuários sem suporte. Um usuário sem suporte pode ser provisionado, mas não pode se conectar a um banco de dados.

O exemplo a seguir usa o opcional ObjectID:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Nota

O ObjectID é necessário quando o DisplayName não é exclusivo. Para recuperar os valores ObjectID e DisplayName , você pode exibir as propriedades de um usuário ou grupo na seção Microsoft Entra ID do Portal do Azure.

O exemplo a seguir retorna informações sobre o administrador atual do Microsoft Entra para o servidor:

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

O exemplo a seguir remove um administrador do Microsoft Entra:

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Nota

Você também pode provisionar um administrador do Microsoft Entra usando as APIs REST. Para obter mais informações, consulte Referência da API REST de Gerenciamento de Serviços e Operações para Operações do Banco de Dados SQL do Azure para o Banco de Dados SQL do Azure

Configurar os computadores clientes

Nota

System.Data.SqlClient usa a Biblioteca de Autenticação do Ative Directory do Azure (ADAL), que foi preterida. Se você estiver usando o namespace System.Data.SqlClient para autenticação do Microsoft Entra, migre aplicativos para Microsoft.Data.SqlClient e a Microsoft Authentication Library (MSAL). Para obter mais informações, consulte Usando a autenticação do Microsoft Entra com SqlClient.

Se você precisar continuar usando ADAL.DLL em seus aplicativos, poderá usar os links nesta seção para instalar o driver ODBC ou OLE DB mais recente, que contém a biblioteca de ADAL.DLL mais recente.

Em todas as máquinas cliente a partir das quais seus aplicativos ou usuários se conectam ao Banco de Dados SQL ou ao Azure Synapse usando identidades do Microsoft Entra, você deve instalar o seguinte software:

Você pode atender a esses requisitos:

Criar utilizadores contidos mapeados para identidades do Microsoft Entra

Esta seção analisa os requisitos e considerações importantes para usar a autenticação do Microsoft Entra com o Banco de Dados SQL do Azure, a Instância Gerenciada SQL do Azure e o Azure Synapse.

  • A autenticação do Microsoft Entra com o Banco de Dados SQL e o Azure Synapse requer o uso de usuários de banco de dados contidos com base em uma identidade do Microsoft Entra. Um usuário de banco de dados contido não tem um logon no banco de dados e mapeia master para uma identidade na ID do Microsoft Entra associada ao banco de dados. A identidade do Microsoft Entra pode ser uma conta de usuário individual, grupo ou aplicativo. Para obter mais informações sobre usuários de banco de dados contidos, consulte Usuários de banco de dados contidos - Tornando seu banco de dados portátil. Para obter mais informações sobre como criar usuários de banco de dados contidos com base em identidades do Microsoft Entra, consulte CREATE USER (Transact-SQL).

  • Como a Instância Gerenciada SQL oferece suporte a entidades de servidor (logons) do Microsoft Entra, o uso de usuários de banco de dados contidos não é necessário. Isso permite que você crie logons de usuários, grupos ou aplicativos do Microsoft Entra. Isso significa que você pode autenticar com sua Instância Gerenciada SQL usando o logon do servidor Microsoft Entra em vez de um usuário de banco de dados contido. Para obter mais informações, consulte Visão geral da instância gerenciada SQL. Para obter a sintaxe sobre a criação de entidades de servidor do Microsoft Entra (logons), consulte CREATE LOGIN.

  • Os usuários do banco de dados (exceto administradores) não podem criar um banco de dados usando o portal do Azure. As funções do Microsoft Entra não são propagadas para o banco de dados no Banco de Dados SQL, na Instância Gerenciada SQL ou na Sinapse do Azure. As funções do Microsoft Entra gerenciam recursos do Azure e não se aplicam a permissões de banco de dados. Por exemplo, a função de Colaborador do SQL Server não concede acesso para se conectar ao banco de dados no Banco de Dados SQL, na Instância Gerenciada do SQL ou na Sinapse do Azure. A permissão de acesso deve ser concedida diretamente no banco de dados usando instruções Transact-SQL.

  • Não é possível criar diretamente um usuário de banco de dados para uma identidade gerenciada em um locatário do Microsoft Entra diferente daquele associado à 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. Eles podem ser usados para criar usuários de banco de dados contidos que podem acessar o Banco de dados SQL. Os usuários externos também podem obter acesso por meio da associação a grupos do Microsoft Entra que contêm usuários de banco de dados.

  • Não há suporte para caracteres especiais como dois pontos : ou "e" & comercial quando incluídos como nomes de usuário no T-SQL CREATE LOGIN e CREATE USER instruções.

Importante

Os usuários e entidades de serviço do Microsoft Entra (aplicativos Microsoft Entra) que são membros de mais de 2048 grupos de segurança do Microsoft Entra não têm suporte para fazer logon no banco de dados no Banco de Dados SQL, na Instância Gerenciada do SQL ou na Sinapse do Azure.

Para criar um usuário de banco de dados contido baseado em ID do Microsoft Entra (diferente do administrador do servidor proprietário do banco de dados), conecte-se ao banco de dados com uma identidade do Microsoft Entra como um usuário com pelo menos a permissão ALTER ANY USER . No exemplo T-SQL a seguir, Microsoft_Entra_principal_name pode ser o nome principal do usuário de um usuário do Microsoft Entra ou o nome de exibição de um grupo do Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Exemplos: Para criar um usuário de banco de dados contido representando um usuário de domínio federado ou gerenciado do Microsoft Entra:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Para criar um usuário de banco de dados contido representando um grupo do Microsoft Entra, forneça o nome para exibição do grupo:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Para criar um usuário de banco de dados contido representando um aplicativo que se conecta usando um token do Microsoft Entra:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

O CREATE USER ... FROM EXTERNAL PROVIDER comando requer acesso SQL ao Microsoft Entra ID (o "provedor externo") em nome do usuário conectado. Às vezes, surgem circunstâncias que fazem com que o Microsoft Entra ID retorne uma exceção ao SQL.

  • Você pode encontrar o erro SQL 33134, que contém a mensagem de erro específica do Microsoft Entra ID. O erro geralmente diz que o acesso é negado, que o usuário deve se inscrever no MFA para acessar o recurso ou que o acesso entre aplicativos primários deve ser tratado por meio de pré-autorização. Nos dois primeiros casos, o problema geralmente é causado por políticas de Acesso Condicional 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-0000000000000' (a ID do aplicativo da API do Microsoft Graph) deve resolver o problema. Se o erro disser que o acesso entre aplicativos primários deve ser tratado por meio de pré-autorização, o problema é porque o usuário está conectado como uma entidade de serviço. O comando deve ter êxito se for executado por um usuário.
  • Se você receber um Tempo Limite de Conexão Expirado, talvez seja necessário definir o TransparentNetworkIPResolution parâmetro 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.

Importante

Remover o administrador do Microsoft Entra para o servidor impede que qualquer usuário de autenticação do Microsoft Entra se conecte ao servidor. Se necessário, um administrador do Banco de dados SQL pode descartar usuários inutilizáveis do Microsoft Entra manualmente.

Quando você cria um usuário de banco de dados, esse usuário recebe a permissão CONNECT e pode se conectar a esse banco de dados como membro da função PUBLIC. Inicialmente, as únicas permissões disponíveis para o usuário são concedidas à função PUBLIC e a qualquer grupo do Microsoft Entra do qual ele seja membro. Conceder permissões a usuários de banco de dados contidos com base no Microsoft Entra opera da mesma forma que conceder permissão a qualquer outro tipo de usuário. É recomendável conceder permissões para funções de banco de dados e adicionar usuários a essas funções, em vez de conceder permissões diretamente a usuários individuais. Para obter mais informações, consulte Noções básicas sobre permissões do mecanismo de banco de dados. Para obter mais informações sobre funções especiais do Banco de Dados SQL, consulte Gerenciando bancos de dados e logons no Banco de Dados SQL do Azure. 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.

Os usuários do Microsoft Entra são marcados nos metadados do banco de dados com o tipo E (EXTERNAL_USER) e para grupos com o tipo X (EXTERNAL_GROUPS). Para obter mais informações, consulte sys.database_principals.

Conectar-se ao banco de dados usando SSMS ou SSDT

Para confirmar se o administrador do Microsoft Entra está configurado corretamente, conecte-se ao master banco de dados usando a conta de administrador do Microsoft Entra. Para criar um usuário de banco de dados contido baseado no Microsoft Entra, conecte-se ao banco de dados com uma identidade do Microsoft Entra com acesso ao banco de dados e, pelo menos, a ALTER ANY USER permissão.

Usar uma identidade do Microsoft Entra para se conectar usando SSMS ou SSDT

Os procedimentos a seguir mostram como se conectar ao Banco de Dados SQL com uma identidade do Microsoft Entra usando o SQL Server Management Studio (SSMS) ou o SSDT (SQL Server Database Tools).

Microsoft Entra ID - Integrado

Use esse método se você estiver conectado ao Windows usando suas credenciais do Microsoft Entra de um domínio federado ou um domínio gerenciado configurado para logon único contínuo para autenticação de hash de passagem e senha. Para mais informações, consulte Início de sessão único totalmente integrado no Microsoft Entra.

  1. Inicie o SSMS ou SSDT e, na caixa de diálogo Conectar ao Servidor (ou Conectar ao Mecanismo de Banco de Dados), na caixa Autenticação, selecione Azure Ative Directory - Integrado. Não é necessário introduzir uma palavra-passe porque as suas credenciais existentes são apresentadas para a ligação.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Selecione o botão Opções e, na página Propriedades da Conexão, na caixa Conectar ao banco de dados, digite o nome do banco de dados do usuário ao qual você deseja se conectar.

    Screenshot from SSMS of the Options menu.

Microsoft Entra ID - Senha

Use esse método ao se conectar com um nome principal do Microsoft Entra usando o domínio gerenciado do Microsoft Entra. Você também pode usá-lo para contas federadas sem acesso ao domínio, por exemplo, ao trabalhar remotamente.

Use esse método para autenticar no banco de dados no Banco de dados SQL ou na Instância Gerenciada SQL com usuários de identidade somente na nuvem do Microsoft Entra ou aqueles que usam identidades híbridas do Microsoft Entra. Esse método oferece suporte a usuários que desejam usar suas credenciais do Windows, mas sua máquina local não está associada ao domínio (por exemplo, usando acesso remoto). Nesse caso, um usuário do Windows pode indicar sua conta de domínio e senha e pode autenticar no banco de dados no Banco de dados SQL, na Instância Gerenciada SQL ou na Sinapse do Azure.

  1. Inicie o SSMS ou SSDT e, na caixa de diálogo Conectar ao Servidor (ou Conectar ao Mecanismo de Banco de Dados), na caixa Autenticação , selecione Azure Ative Directory - Senha.

  2. Na caixa Nome de usuário, digite seu nome de usuário do Microsoft Entra no formato username\@domain.com. Os nomes de usuário devem ser uma conta do Microsoft Entra ID ou uma conta de um domínio gerenciado ou federado com o Microsoft Entra ID.

  3. Na caixa Senha, digite sua senha de usuário para a conta do Microsoft Entra ou conta de domínio gerenciado/federado.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Selecione o botão Opções e, na página Propriedades da Conexão, na caixa Conectar ao banco de dados, digite o nome do banco de dados do usuário ao qual você deseja se conectar. (Veja o gráfico na opção anterior.)

Microsoft Entra ID - Universal com MFA

Use este método para autenticação interativa com autenticação multifator (MFA), com a senha sendo solicitada interativamente. Esse método pode ser usado para autenticar bancos de dados no Banco de Dados SQL, Instância Gerenciada SQL e Sinapse do Azure para usuários de identidade somente na nuvem do Microsoft Entra ou aqueles que usam identidades híbridas do Microsoft Entra.

Para obter mais informações, consulte Usando a autenticação multifator do Microsoft Entra com o Banco de Dados SQL e o Azure Synapse (suporte do SSMS para MFA).

Microsoft Entra ID - Entidade de Serviço

Use esse método para autenticar no banco de dados no Banco de dados SQL ou na Instância Gerenciada SQL com entidades de serviço do Microsoft Entra (aplicativos Microsoft Entra). Para obter mais informações, consulte Entidade de serviço do Microsoft Entra com Azure SQL.

Microsoft Entra ID - Identidade Gerenciada

Use esse método para autenticar no banco de dados no Banco de dados SQL ou na Instância Gerenciada do SQL com identidades gerenciadas do Microsoft Entra. Para obter mais informações, consulte Identidades gerenciadas no Microsoft Entra para Azure SQL.

Microsoft Entra ID - Padrão

A opção Autenticação padrão com ID do Microsoft Entra permite a autenticação realizada por meio de mecanismos sem senha e não interativos, incluindo identidades gerenciadas.

Usar a identidade do Microsoft Entra para se conectar usando o editor de consultas do portal do Azure para o Banco de Dados SQL do Azure

Para obter mais informações sobre o editor de consultas do portal do Azure para o Banco de Dados SQL do Azure, consulte Guia de início rápido: usar o editor de consultas do portal do Azure para consultar o Banco de Dados SQL do Azure.

  1. Navegue até seu banco de dados SQL no portal do Azure. Por exemplo, visite seu painel SQL do Azure.

  2. Na página Visão geral do banco de dados SQL no portal do Azure, selecione Editor de consultas no menu à esquerda.

  3. Na tela de entrada, em Bem-vindo ao Editor de Consultas do Banco de Dados SQL, selecione Continuar como <sua ID> de usuário ou grupo.

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

Usar uma identidade do Microsoft Entra para se conectar a partir de um aplicativo cliente

Os procedimentos a seguir mostram como se conectar a um Banco de Dados SQL com uma identidade do Microsoft Entra de um aplicativo cliente. Esta não é uma lista abrangente de métodos de autenticação ao usar uma identidade do Microsoft Entra. Para obter mais informações, consulte Conectar-se ao SQL do Azure com autenticação do Microsoft Entra e SqlClient.

Autenticação integrada do Microsoft Entra

Para usar a autenticação integrada do Windows, o Ative Directory do seu domínio deve ser federado com o Microsoft Entra ID ou deve ser um domínio gerenciado configurado para logon único contínuo para autenticação de hash de passagem ou senha. Para mais informações, consulte Início de sessão único totalmente integrado no Microsoft Entra.

Seu aplicativo cliente (ou um serviço) que se conecta ao banco de dados deve estar em execução em uma máquina associada a um domínio sob as credenciais de domínio de um usuário.

Para se conectar a um banco de dados usando autenticação integrada e uma identidade do Microsoft Entra, a palavra-chave Authentication na cadeia de conexão do banco de dados deve ser definida como Active Directory Integrated. Substitua <database_name> pelo nome do banco de dados. O exemplo de código C# a seguir usa o ADO .NET.

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

A palavra-chave Integrated Security=True da cadeia de conexão não tem suporte para conexão com o Banco de Dados SQL do Azure. Ao fazer uma conexão ODBC, você precisa remover espaços e definir a autenticação como ActiveDirectoryIntegrated.

Autenticação de senha do Microsoft Entra

Para se conectar a um banco de dados usando contas de usuário de identidade somente na nuvem do Microsoft Entra ou aqueles que usam identidades híbridas do Microsoft Entra, a palavra-chave Authentication deve ser definida como Active Directory Password. A cadeia de conexão deve conter palavras-chave e valores de ID de usuário/UID e senha/PWD. Substitua <database_name>, <email_address>e <password> com os valores apropriados. O exemplo de código C# a seguir usa o ADO .NET.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Saiba mais sobre os métodos de autenticação do Microsoft Entra usando os exemplos de código de demonstração disponíveis em Microsoft Entra authentication GitHub Demo.

Token de acesso do Microsoft Entra ID

Esse método de autenticação permite que os serviços de camada intermediária obtenham JSON Web Tokens (JWT) para se conectar ao banco de dados no Banco de Dados SQL, na Instância Gerenciada SQL ou no Azure Synapse obtendo um token da ID do Microsoft Entra. Esse método permite vários cenários de aplicativo, incluindo identidades de serviço, entidades de serviço e aplicativos que usam autenticação baseada em certificado. Você deve concluir quatro etapas básicas para usar a autenticação de token do Microsoft Entra:

  1. Registe a sua aplicação com o Microsoft Entra ID e obtenha o ID de cliente para o seu código.
  2. Crie um usuário de banco de dados representando o aplicativo. (Preenchido anteriormente na seção Crie usuários contidos mapeados para identidades do Microsoft Entra.)
  3. Criar um certificado no computador cliente executa o aplicativo.
  4. Adicione o certificado como uma chave para o seu aplicativo.

Exemplo de cadeia de conexão. Substitua <database_name> pelo nome do banco de dados:

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Para obter mais informações, consulte Blog de segurança do SQL Server. Para obter informações sobre como adicionar um certificado, consulte Introdução à autenticação baseada em certificado no Microsoft Entra ID.

sqlcmd

As instruções a seguir se conectam usando a versão 13.1 do sqlcmd. Baixe o Microsoft Command Line Utilities 14.0 para SQL Server.

Nota

sqlcmd com o comando não funciona com identidades do sistema e requer um login principal do -G usuário.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Solucionar problemas de autenticação do Microsoft Entra

Para obter orientação sobre como solucionar problemas com a autenticação do Microsoft Entra, consulte Blog: Solucionando problemas relacionados à autenticação do Azure AD com o Banco de Dados SQL do Azure e DW.