Conectar-se ao Banco de Dados SQL do Azure com a autenticação multifator do Microsoft Entra
Aplica-se a:Banco de Dados SQL do Azure
Este artigo fornece um programa C# que se conecta ao Banco de Dados SQL do Azure. O programa usa autenticação de modo interativo, que dá suporte à autenticação multifator usando o Microsoft Entra ID (anteriormente Azure Ative Directory).
Para obter mais informações sobre o suporte à autenticação multifator para ferramentas SQL, consulte Usando a autenticação multifator do Microsoft Entra.
Nota
Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.
Autenticação multifator para o Banco de Dados SQL do Azure
Active Directory Interactive
a autenticação dá suporte à autenticação multifator usando Microsoft.Data.SqlClient para se conectar a fontes de dados SQL do Azure. Em um programa C# cliente, o valor enum direciona o sistema para usar o modo interativo Microsoft Entra que dá suporte à autenticação multifator para se conectar ao Banco de Dados SQL do Azure. O usuário que executa o programa vê as seguintes caixas de diálogo:
Uma caixa de diálogo que exibe um nome de usuário do Microsoft Entra e solicita a senha do usuário.
Se o domínio do usuário estiver federado com o Microsoft Entra ID, a caixa de diálogo não será exibida, porque nenhuma senha será necessária.
Se a política do Microsoft Entra impuser autenticação multifator ao usuário, uma caixa de diálogo para entrar na sua conta será exibida.
A primeira vez que um usuário passa pela autenticação multifator, o sistema exibe uma caixa de diálogo que solicita um número de telefone celular para enviar mensagens de texto. Cada mensagem fornece o código de verificação que o usuário deve inserir na próxima caixa de diálogo.
Uma caixa de diálogo que solicita um código de verificação de autenticação multifator, que o sistema enviou para um telefone celular.
Para obter informações sobre como configurar o Microsoft Entra ID para exigir autenticação multifator, consulte Introdução à autenticação multifator do Microsoft Entra na nuvem.
Para obter capturas de tela dessas caixas de diálogo, consulte Usando a autenticação multifator do Microsoft Entra.
Gorjeta
Você pode pesquisar APIs do .NET Framework com a página da ferramenta Navegador da API do .NET.
Você também pode pesquisar diretamente com o parâmetro opcional ?term=<search value>.
Pré-requisito
Antes de começar, você deve ter um servidor SQL lógico criado e disponível.
Definir um administrador do Microsoft Entra para o seu servidor
Para que o exemplo de C# seja executado, um administrador de servidor lógico precisa atribuir um administrador do Microsoft Entra a partir do ID do Microsoft Entra para o seu servidor .
No portal do Azure, na página SQL Server, selecione Microsoft Entra ID no menu de recursos e, em seguida, selecione Definir administrador.
Para obter mais informações sobre administradores e usuários do Microsoft Entra para o Banco de Dados SQL do Azure, consulte as capturas de tela em Configurar e gerenciar a autenticação do Microsoft Entra com o Banco de Dados SQL.
Microsoft.Data.SqlClient
O exemplo C# depende do namespace Microsoft.Data.SqlClient . Para obter mais informações, consulte Usando a autenticação do Microsoft Entra com SqlClient.
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 sobre como usar a autenticação do Microsoft Entra com SqlClient, consulte Usando a autenticação do Microsoft Entra com SqlClient.
Verificar com o SQL Server Management Studio
Antes de executar o exemplo em C#, é recomendável verificar se a instalação e as configurações estão corretas no SQL Server Management Studio (SSMS). Qualquer falha do programa C# pode ser reduzida ao código-fonte.
Verificar endereços IP de firewall no nível de servidor
Execute o SSMS a partir do mesmo computador, no mesmo edifício, onde planeia executar o exemplo C#. Para este teste, qualquer modo de autenticação é OK. Se houver alguma indicação de que o servidor não está aceitando seu endereço IP, consulte Regras de firewall no nível do servidor e no nível do banco de dados para obter ajuda.
Verificar a autenticação multifator do Microsoft Entra
Execute o SSMS novamente, desta vez com a Autenticação definida como Azure Ative Directory - Universal com MFA. Esta opção requer o SSMS versão 18.6 ou posterior.
Para obter mais informações, consulte Usando a autenticação multifator do Microsoft Entra.
Nota
Para versões do SSMS anteriores à 18.x, os usuários convidados devem fornecer o nome de domínio ou ID de locatário do Microsoft Entra para o banco de dados: Selecione Opções>Nome de domínio do AD ou ID do locatário. O SSMS 18.x e posterior reconhece automaticamente o locatário.
Para localizar o nome de domínio no portal do Azure, selecione Nomes de domínio personalizados do Microsoft Entra ID>. No programa de exemplo em C#, não é necessário fornecer um nome de domínio.
Exemplo de código C#
Nota
Se você estiver usando o .NET Core, você desejará usar o namespace Microsoft.Data.SqlClient . Para obter mais informações, consulte o blog a seguir.
Este é um exemplo de código-fonte C#.
using System;
using Microsoft.Data.SqlClient;
public class Program
{
public static void Main(string[] args)
{
// Use your own server, database, and user ID.
// Connetion string - user ID is not provided and is asked interactively.
string ConnectionString = @"Server=<your server>.database.windows.net; Authentication=Active Directory Interactive; Database=<your database>";
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
Console.WriteLine("ConnectionString2 succeeded.");
using (var cmd = new SqlCommand("SELECT @@Version", conn))
{
Console.WriteLine("select @@version");
var result = cmd.ExecuteScalar();
Console.WriteLine(result.ToString());
}
}
Console.ReadKey();
}
}
Este é um exemplo da saída de teste C#.
ConnectionString2 succeeded.
select @@version
Microsoft SQL Azure (RTM) - 12.0.2000.8
...