Adicionar uma conexão a um Banco de Dados SQL do Azure
Com os Serviços Conectados do Visual Studio, você pode se conectar ao Banco de Dados SQL do Azure, a um emulador local (por exemplo, durante o desenvolvimento) ou a um banco de dados do SQL Server local. Para o SQL Server local, consulte Conectar a um banco de dados.
Com o Visual Studio, você pode se conectar de qualquer um dos seguintes tipos de projeto usando o recurso Serviços Conectados:
- ASP.NET Core
- .NET Core (incluindo aplicativo de console, WPF, Windows Forms, biblioteca de classes)
- Função de trabalho do .NET Core
- Azure Functions (Funções do Azure)
- Aplicativo de console do .NET Framework
- MVC (Model-View-Controller) do ASP.NET (.NET Framework)
- Aplicativo da Plataforma Universal do Windows
A funcionalidade de serviço conectado adiciona todas as referências necessárias e código de conexão ao seu projeto e modifica os arquivos de configuração adequadamente.
Pré-requisitos
- Visual Studio com a carga de trabalho do Azure instalada.
- Um projeto de um dos tipos com suporte
- Uma conta do Azure. Se você não tem uma conta do Azure, ative seus benefícios do Azure para assinantes do Visual Studio ou inscreva-se para uma avaliação gratuita.
Conectar-se ao Banco de Dados SQL do Azure usando serviços conectados
Abra seu projeto no Visual Studio.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó Serviços Conectados e, no menu de contexto, selecione Adicionar para abrir o menu de serviços disponíveis.
Se não vir o nó Serviços Conectados, escolha Projeto>Serviços Conectados>Adicionar.
Escolha o banco de dados SQL Server . A página Conectar-se à dependência é exibida. Você deverá ver várias opções:
- SQL Server Express LocalDB, o Banco de Dados SQL integrado instalado com o Visual Studio
- Banco de Dados do SQL Server em um contêiner local em seu computador
- Banco de Dados do SQL Server, um SQL Server local na rede local
- Banco de Dados SQL do Azure, para o Banco de Dados SQL em execução como um serviço do Azure
Você pode reduzir o custo e simplificar o desenvolvimento antecipado começando com um banco de dados local. Você pode migrar para o serviço dinâmico no Azure mais tarde repetindo essas etapas e escolhendo outra opção. Se você criar um banco de dados localmente que deseja recriar no Azure, poderá migrar seu banco de dados para o Azure nesse momento.
Se você quiser se conectar ao serviço do Azure, continue para a próxima etapa ou, se ainda não estiver conectado, entre em sua conta do Azure antes de continuar. Se você não tiver uma conta do Azure, poderá se inscrever para uma avaliação gratuita .
Na tela Configurar o Banco de Dados SQL do Azure, selecione um Banco de Dados SQL do Azure existente e selecione Avançar.
Se você precisar criar um novo componente, vá para a próxima etapa. Caso contrário, pule para a etapa 7.
Para criar um banco de dados SQL do Azure:
Selecione Criar pelo sinal de adição verde.
Preencha o Banco de Dados SQL do Azure: Criar e selecione Criar.
Quando a tela Configurar o Banco de Dados SQL do Azure é exibida, o novo banco de dados aparece na lista. Selecione o novo banco de dados na lista e selecione Próximo.
Insira um nome de cadeia de conexão ou escolha o padrão e escolha Configurações Adicionais.
Nota
Com o Visual Studio 2022 versão 17.12 e posterior, este procedimento usa a identidade gerenciada do Microsoft Entra, um método de autenticação sem senha, para se conectar ao banco de dados. O aviso nessa tela significa que você precisa executar uma etapa manual no Portal do Azure depois de concluir este procedimento no Visual Studio. Confira Autenticação do Microsoft Entra.
Escolha se deseja que a cadeia de conexão seja armazenada em um arquivo de segredos local ou em do Azure Key Vault e escolha Próximo.
A tela Resumo das alterações mostra todas as modificações que serão feitas no projeto se você concluir o processo. Se as alterações parecerem corretas, escolha Concluir.
Se solicitado a definir regras de firewall, escolha Sim.
No Gerenciador de Soluções, clique duas vezes no nó Serviços Conectados para abrir a guia Serviços Conectados. A conexão é exibida na seção Dependências de Serviço:
Se você clicar nos três pontos ao lado da dependência adicionada, poderá ver várias opções, como Conectar para reabrir o assistente e alterar a conexão. Você também pode clicar nos três pontos no canto superior direito da janela para ver opções para iniciar dependências locais, alterar configurações e muito mais.
Se você estiver usando a identidade gerenciada (Visual Studio 17.12 e posterior), consulte a próxima seção para configurar o usuário de identidade gerenciada no banco de dados SQL do Azure.
Autenticação do Microsoft Entra
Com o Visual Studio 2022 versão 17.12 e posterior, o procedimento de serviços conectados usa a autenticação do Microsoft Entra, que é o método mais seguro de autenticação. No entanto, o Visual Studio não cria o usuário administrador do Microsoft Entra no banco de dados SQL do Azure para você automaticamente. Se não houver um usuário administrador do Microsoft Entra, a conexão falhará ao se autenticar com êxito.
Você pode usar o Portal do Azure, o PowerShell ou a CLI do Azure para criar o usuário administrador do Microsoft Entra. Para obter instruções detalhadas sobre cada um desses métodos, consulte Definir o usuário administrador do Microsoft Entra.
Depois de concluir o processo de Serviços Conectados, você precisará criar um usuário SQL que corresponda à identidade gerenciada e definir permissões executando instruções SQL no banco de dados. Entre no editor de consultas do no Portal do Azure como usuário administrador do Microsoft Entra e execute instruções como estas:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO
O <identity-name>
é o nome da identidade gerenciada na ID do Microsoft Entra. Se a identidade for atribuída pelo sistema, o nome será sempre o mesmo que o do aplicativo do Serviço de Aplicativo. Para um slot de implantação, o nome de sua identidade atribuída pelo sistema é <app-name>/slots/<slot-name>
. Para conceder permissões para um grupo do Microsoft Entra, use o nome de exibição do grupo (por exemplo, myAzureSQLDBAccessGroup
). Confira Tipos de Identidade Gerenciada e Identidades gerenciadas no Microsoft Entra para SQL do Azure. As funções que você adiciona dependem dos casos de uso. Consulte ALTER ROLE.
Se o código fizer referência System.Data.SqlClient
, você precisará atualizar para Microsoft.Data.SqlClient
, já que System.Data.SqlClient
não dá suporte à autenticação do Microsoft Entra. Para atualizar, adicione uma referência ao pacote NuGet Microsoft.Data.SqlCliente atualize todas as diretivas de uso que referenciem System.Data.SqlClient
para referenciar o namespace Microsoft.Data.SqlClient
. Há algumas alterações de comportamento; consulte Folha de referências de portabilidade.
Abra seu projeto no Visual Studio.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó Serviços Conectados e, no menu de contexto, selecione Adicionar para abrir o menu de serviços disponíveis.
Se não vir o nó Serviços Conectados, escolha Projeto>Serviços Conectados>Adicionar.
Escolha Banco de dados do SQL Server. A página Conectar-se à dependência é exibida. Você deverá ver várias opções:
- SQL Server Express LocalDB, a solução integrada de Banco de Dados SQL instalada com o Visual Studio
- Banco de Dados do SQL Server em um contêiner local em seu computador
- Banco de Dados do SQL Server, um SQL Server local na rede local
- Banco de Dados SQL do Azure, para o Banco de Dados SQL em execução como um serviço do Azure
Você pode reduzir o custo e simplificar o desenvolvimento antecipado começando com um banco de dados local. Você pode migrar para o serviço dinâmico no Azure mais tarde repetindo essas etapas e escolhendo outra opção. Se você criar um banco de dados localmente que deseja recriar no Azure, poderá migrar seu banco de dados para o Azure nesse momento.
Se você quiser se conectar ao serviço do Azure, continue para a próxima etapa ou, se ainda não estiver conectado, entre em sua conta do Azure antes de continuar. Se você não tiver uma conta do Azure, poderá se inscrever para uma avaliação gratuita .
Na tela Configurar o Banco de Dados SQL do Azure, selecione um Banco de Dados SQL do Azure existente e selecione Avançar.
Se você precisar criar um novo componente, vá para a próxima etapa. Caso contrário, pule para a etapa 7.
Para criar um banco de dados SQL do Azure:
Selecione Criar pelo sinal de adição verde.
Preencha o Banco de Dados SQL do Azure: Criar e selecione Criar.
Quando a tela Configurar o Banco de Dados SQL do Azure é exibida, o novo banco de dados aparece na lista. Selecione o novo banco de dados na lista e selecione Próximo.
Insira um nome de cadeia de conexão ou escolha o padrão e escolha se deseja que a cadeia de conexão seja armazenada em um arquivo de segredos local ou em do Azure Key Vault.
A tela Resumo das alterações mostra todas as modificações que serão feitas no projeto se você concluir o processo. Se as alterações parecerem corretas, escolha Concluir.
Se solicitado a definir regras de firewall, escolha Sim.
No Gerenciador de Soluções, clique duas vezes no nó Serviços Conectados para abrir a guia Serviços Conectados. A conexão é exibida na seção Dependências de Serviço:
Se você clicar nos três pontos ao lado da dependência adicionada, poderá ver várias opções, como Conectar para reabrir o assistente e alterar a conexão. Você também pode clicar nos três pontos no canto superior direito da janela para ver opções para iniciar dependências locais, alterar configurações e muito mais.
Acessar a cadeia de conexão
Saiba como armazenar segredos com segurança seguindo o Armazenamento seguro de segredos do aplicativo em desenvolvimento no ASP.NET Core. Em particular, para ler a cadeia de conexão do repositório de segredos, você pode adicionar código como em Ler o segredo por meio da API de configuração. Confira também Injeção de dependência no ASP.NET Core.
Migrações do Entity Framework
Pode ser conveniente trabalhar com um armazenamento de dados local durante o desenvolvimento antecipado, mas com o Entity Framework Core, quando você estiver pronto para migrar para a nuvem, poderá usar o suporte do Visual Studio para migração do Entity Framework para mover seu banco de dados ou mesclar alterações com um armazenamento de dados remoto. Confira Visão geral das migrações.
Na guia Serviços Conectados, você pode encontrar os comandos de migração clicando nos três pontos, conforme mostrado na captura de tela:
Os comandos estão disponíveis para criar novas migrações, aplicá-las diretamente ou gerar scripts SQL que aplicam as migrações.
Adicionar migração
Quando uma alteração de modelo de dados é introduzida, você pode usar as ferramentas do Entity Framework Core para adicionar uma migração correspondente que descreve no código as atualizações necessárias para manter o esquema de banco de dados em sincronia. O Entity Framework Core compara o modelo atual com um instantâneo do modelo antigo para determinar as diferenças e gera arquivos de origem de migração. Os arquivos são adicionados ao seu projeto, geralmente em uma pasta chamada Migrations e podem ser acompanhados no controle do código-fonte do projeto, como qualquer outro arquivo de origem.
Ao escolher essa opção, você será solicitado a fornecer o nome da classe de contexto que representa o esquema de banco de dados que você deseja migrar.
Atualizar banco de dados
Depois que uma migração for criada, ela poderá ser aplicada a um banco de dados. O Entity Framework atualiza seu banco de dados e seu esquema com as alterações especificadas no código de migração. Ao escolher essa opção, você será solicitado a fornecer o nome da classe de contexto que representa o esquema de banco de dados que você deseja migrar.
Gerar Script SQL
A maneira recomendada de implantar migrações em um banco de dados de produção é gerando scripts SQL. As vantagens dessa estratégia incluem o seguinte:
- Os scripts SQL podem ser revisados quanto à precisão; isso é importante porque aplicar alterações de esquema a bancos de dados de produção é uma operação potencialmente perigosa que pode envolver perda de dados.
- Em alguns casos, os scripts podem ser ajustados para atender às necessidades específicas de um banco de dados de produção.
- Os scripts SQL podem ser usados em conjunto com uma tecnologia de implantação e podem até ser gerados como parte do processo de CI.
- Os scripts SQL podem ser fornecidos a um DBA e podem ser gerenciados e arquivados separadamente.
Quando você usa essa opção, você é questionado sobre a classe de contexto do banco de dados e o local do arquivo de script.
Abrir no Pesquisador de Objetos do SQL Server
Por conveniência, esse comando permite que você vá para o Pesquisador de Objetos do SQL Server, para que você possa exibir tabelas e outras entidades de banco de dados e trabalhar diretamente com seus dados. Confira Pesquisador de Objetos.
Próximas etapas
Você pode continuar com os guias de início rápido para o Banco de Dados SQL do Azure, mas em vez de começar desde o início, poderá começar depois que a conexão inicial for configurada. Se você estiver usando o Entity Framework, poderá começar no Adicionar o código para se conectar ao Banco de Dados SQL do Azure. Se você estiver usando classes de dados SqlClient
ou ADO.NET, poderá começar Adicionar o código para se conectar ao Banco de Dados SQL do Azure.
Seu código não corresponderá exatamente ao que é usado nos inícios rápidos, que usam uma maneira diferente de obter a cadeia de conexão. As cadeias de conexão são segredos e são armazenadas com segurança, conforme explicado em Armazenamento seguro de segredos do aplicativo em desenvolvimento no ASP.NET Core. Em particular, para ler a cadeia de conexão do repositório de segredos, você pode adicionar código como em Ler o segredo por meio da API de configuração.
Em projetos do ASP.NET Core, a configuração de conexão ou cadeia de conexão criada pelos Serviços Conectados está disponível em um objeto de configuração. Você pode acessá-lo por uma propriedade na classe WebApplicationBuilder
(builder
em muitos modelos de projeto), como no exemplo a seguir:
var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];
A cadeia de caracteres a ser fornecida à propriedade Configuração deve corresponder à chave no secrets.json ou no Azure Key Vault, que você forneceu no procedimento Serviços Conectados. Por exemplo, com o Visual Studio 2022 17.12 e posterior, a configuração de conexão é armazenada em secrets.json como:
{
"ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}
Em projetos do ASP.NET Core, a configuração de conexão ou cadeia de conexão criada pelos Serviços Conectados está disponível em um objeto de configuração. Você pode acessá-lo por uma propriedade na classe WebApplicationBuilder
(builder
em muitos modelos de projeto), como no exemplo a seguir:
var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];