Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:Banco de Dados SQL do Azure
Banco de Dados SQL no Fabric
Este artigo fornece um programa C# que se conecta ao Banco de Dados SQL do Azure. O programa usa modo de autenticação interativa, que suporta autenticação multifator usando o Microsoft Entra ID (anteriormente Azure Active Directory).
Para obter mais informações sobre o suporte à autenticação multifator para ferramentas SQL, consulte Usando a autenticação multifator do Microsoft Entra.
Observação
Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).
Autenticação multifator para o Banco de Dados SQL do Azure
A autenticação Active Directory Interactive suporta a autenticação multifator usando Microsoft.Data.SqlClient para conectar-se 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.
Dica
Você pode pesquisar APIs do .NET Framework com a ferramenta Navegador de API do .NET na página .
Você também pode pesquisar diretamente com o opcional ?term=<valor de pesquisa> parâmetro.
Pré-requisitos
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 em C# seja executado, um administrador do servidor lógico precisa atribuir um administrador do Microsoft Entra ID ao seu servidor.
No portal do Azure, na página do servidor SQL, selecione Microsoft Entra ID no menu de recursos e, em seguida, selecione Definir administrador.
Para obter mais informações sobre administradores e utilizadores do Microsoft Entra para a Base de Dados SQL do Azure, veja as capturas de ecrã em Configurar e gerir a autenticação do Microsoft Entra com a Base 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 o SqlClient.
Observação
System.Data.SqlClient usa a Biblioteca de Autenticação do Ative Directory do Azure (ADAL), que foi preterida. Se estiver a usar o namespace System.Data.SqlClient para autenticação do Microsoft Entra, migre as aplicações 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 é aceitável. 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 Active 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.
Observação
Para versões do SSMS anteriores à 18.x, os utilizadores convidados devem fornecer o nome de domínio ou ID de inquilino do Microsoft Entra para o banco de dados: Selecione Opções>nome de domínio do AD ou ID do inquilino. O SSMS 18.x e posterior reconhece automaticamente o locatário.
Para localizar o nome de domínio no portal do Azure, selecione ID do Microsoft Entra>Nomes de domínio personalizados. No programa de exemplo em C#, não é necessário fornecer um nome de domínio.
Exemplo de código C#
Observação
Se você estiver usando o .NET Core, você desejará usar o namespace Microsoft.Data.SqlClient. Para obter mais informações, consulte o seguinte blog.
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.
// Connection 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
...