Ligar a aplicação ao Azure SQL Managed Instance
Aplica-se a:Instância Gerenciada SQL do Azure
Este artigo descreve como conectar seu aplicativo à Instância Gerenciada SQL do Azure em vários cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.
Hoje você tem várias opções ao decidir como e onde hospedar seu aplicativo. Você pode optar por hospedar um aplicativo na nuvem usando o Serviço de Aplicativo do Azure ou algumas das opções integradas de rede virtual do Azure, como o Ambiente do Serviço de Aplicativo do Azure, as Máquinas Virtuais do Azure e os Conjuntos de Dimensionamento de Máquina Virtual. Você também pode adotar a abordagem de nuvem híbrida ("mista") e manter seus aplicativos no local. Seja qual for a escolha feita, seu aplicativo pode se conectar à Instância Gerenciada SQL do Azure em vários cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.
Você também pode habilitar o acesso a dados para sua instância gerenciada de fora de uma rede virtual – por exemplo, de serviços multilocatários do Azure, como o Power BI e o Serviço de Aplicativo do Azure, ou de uma rede local não conectada às suas redes virtuais via VPN. Para realizar esses e outros cenários semelhantes, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.
Conecte-se de dentro da mesma VNet
Ligar uma aplicação dentro da mesma rede virtual que o SQL Managed Instance é o cenário mais simples. As máquinas virtuais dentro da rede virtual podem se conectar umas às outras diretamente, mesmo que estejam dentro de sub-redes diferentes. Isso significa que conectar um aplicativo dentro do Ambiente do Serviço de Aplicativo ou uma máquina virtual implantada na mesma rede virtual que a Instância Gerenciada SQL é configurar a cadeia de conexão para direcionar seu ponto de extremidade local de rede virtual.
Conecte-se de dentro de uma VNet diferente
Conectar um aplicativo quando ele reside em uma rede virtual diferente da Instância Gerenciada do SQL requer que o aplicativo primeiro obtenha acesso à rede virtual onde a Instância Gerenciada do SQL está implantada ou à própria Instância Gerenciada do SQL. As duas redes virtuais não precisam estar na mesma assinatura.
Há três opções para se conectar a uma Instância Gerenciada SQL em uma rede virtual diferente:
- Pontos Finais Privados
- Azure VNet Peering
- Gateway VPN VNet-to-VNet (portal do Azure, PowerShell, CLI do Azure)
Dos três, os terminais privados são a opção mais segura e económica em termos de recursos porque:
- exponha apenas a Instância Gerenciada SQL de sua rede virtual.
- permitir apenas conectividade unidirecional.
- requerem apenas um endereço IP na rede virtual do aplicativo.
Se os pontos de extremidade privados não puderem atender totalmente aos requisitos do seu cenário, considere o emparelhamento de rede virtual. O emparelhamento usa a rede de backbone do Azure, portanto, não há nenhuma penalidade de latência percetível para a comunicação entre os limites da rede virtual. O emparelhamento de rede virtual é suportado entre redes em todas as regiões (emparelhamento de rede virtual global), enquanto as instâncias hospedadas em sub-redes criadas antes de 22 de setembro de 2020 oferecem suporte apenas ao emparelhamento dentro de sua região.
Ligar a partir do ambiente do local
Você pode conectar seu aplicativo local ao ponto de extremidade local da rede virtual da sua Instância Gerenciada SQL. Para acessá-lo localmente, você precisa fazer uma conexão site a site entre o aplicativo e a rede virtual da Instância Gerenciada SQL. Se o acesso somente de dados à sua instância gerenciada for suficiente, você poderá se conectar a ela de fora de uma rede virtual por meio de um ponto de extremidade público - consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure para saber mais.
Há duas opções para conectar um aplicativo local a uma rede virtual do Azure:
- Ligação VPN site a site (portal do Azure, PowerShell, CLI do Azure)
- Ligação do Azure ExpressRoute
Se você estabeleceu uma conexão local com o Azure e não consegue estabelecer uma conexão com a Instância Gerenciada do SQL, verifique se o firewall tem uma conexão de saída aberta na porta SQL 1433, bem como o intervalo de portas 11000-11999 para redirecionamento.
Conectar uma caixa de desenvolvedor
Também é possível conectar sua caixa de desenvolvedor à Instância Gerenciada SQL. Para acessá-lo a partir da caixa do desenvolvedor por meio da rede virtual, primeiro você precisa fazer uma conexão entre a caixa do desenvolvedor e a rede virtual da Instância Gerenciada SQL. Para fazer isso, configure uma conexão ponto a site com uma rede virtual usando a autenticação de certificado nativo do Azure. Para obter mais informações, consulte Configurar uma conexão ponto a site para se conectar à Instância Gerenciada SQL do Azure a partir de um computador local.
Para obter acesso a dados à sua instância gerenciada de fora de uma rede virtual, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.
Conecte-se a uma rede spoke
Outro cenário comum é quando um gateway VPN é instalado em uma rede virtual separada (e talvez assinatura) - rede spoke - daquela que hospeda a Instância Gerenciada SQL (rede hub). A conectividade com a Instância Gerenciada SQL da rede spoke é configurada por meio de uma das opções listadas em Conectar de dentro de uma VNet diferente: pontos de extremidade privados, emparelhamento de VNet ou um gateway VNet-to-VNet.
O diagrama de arquitetura de exemplo a seguir mostra o emparelhamento de VNet:
Se você estiver emparelhando redes hub e spoke, verifique se o gateway VPN vê os endereços IP da rede do hub. Para fazer isso, faça as seguintes alterações em Configurações de emparelhamento:
- Na rede virtual que hospeda o gateway VPN (rede falada), vá para Emparelhamentos, vá para a conexão de rede virtual emparelhada para Instância Gerenciada SQL e selecione Permitir Trânsito de Gateway.
- Na rede virtual que hospeda a Instância Gerenciada SQL (rede de hub), vá para Emparelhamentos, vá para a conexão de rede virtual emparelhada para o gateway VPN e selecione Usar gateways remotos.
Conectar o Serviço de Aplicativo do Azure
Você também pode conectar um aplicativo hospedado pelo Serviço de Aplicativo do Azure quando ele estiver integrado à sua rede virtual. Para fazer isso, selecione um dos mecanismos listados em Conectar de dentro de uma VNet diferente. Para obter acesso a dados à sua instância gerenciada de fora de uma rede virtual, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.
Um caso especial para conectar o Serviço de Aplicativo do Azure à Instância Gerenciada do SQL é quando você integra o Serviço de Aplicativo do Azure a uma rede emparelhada a uma rede virtual de Instância Gerenciada do SQL. Este caso requer que esteja definida a seguinte configuração:
- A rede virtual da Instância Gerenciada SQL NÃO deve ter um gateway
- A rede virtual da Instância Gerenciada SQL deve ter a
Use remote gateways
opção definida - A rede virtual emparelhada deve ter a
Allow gateway transit
opção definida
Este cenário é ilustrado no diagrama a seguir:
Nota
O recurso de integração de rede virtual não integra um aplicativo com uma rede virtual que tenha um gateway de Rota Expressa. Mesmo que o gateway da Rota Expressa esteja configurado no modo de coexistência, a integração de rede virtual não funciona. Se você precisar acessar recursos por meio de uma conexão de Rota Expressa, poderá usar o Ambiente do Serviço de Aplicativo, que é executado em sua rede virtual.
Para solucionar problemas de acesso ao Serviço de Aplicativo do Azure via rede virtual, consulte Solução de problemas de redes e aplicativos virtuais.
Resolver problemas de conectividade
Para solucionar problemas de conectividade, revise o seguinte:
Se você não conseguir se conectar à Instância Gerenciada SQL de uma máquina virtual do Azure dentro da mesma rede virtual, mas em uma sub-rede diferente, verifique se você tem um Grupo de Segurança de Rede configurado na sub-rede da VM que pode estar bloqueando o acesso. Além disso, abra a conexão de saída na porta SQL 1433, bem como portas no intervalo 11000-11999, já que elas são necessárias para se conectar via redirecionamento dentro do limite do Azure.
Verifique se a propagação de rotas de gateway está desabilitada para a tabela de rotas associada à rede virtual.
Se estiver usando VPN ponto a site, verifique a configuração no portal do Azure para ver se você vê os números de Entrada/Saída . Números diferentes de zero indicam que o Azure está roteando o tráfego de/para o local.
Verifique se a máquina cliente (que está executando o cliente VPN) tem entradas de rota para todas as redes virtuais que você precisa acessar. As rotas são armazenadas em
%AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt
.Como mostrado nesta imagem, há duas entradas para cada rede virtual envolvida e uma terceira entrada para o ponto de extremidade VPN configurado no portal.
Outra maneira de verificar as rotas é através do seguinte comando. A saída mostra as rotas para as várias sub-redes:
C:\ >route print -4 =========================================================================== Interface List 14...54 ee 75 67 6b 39 ......Intel(R) Ethernet Connection (3) I218-LM 57...........................rndatavnet 18...94 65 9c 7d e5 ce ......Intel(R) Dual Band Wireless-AC 7265 1...........................Software Loopback Interface 1 Adapter=========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.83.72.1 10.83.74.112 35 10.0.0.0 255.255.255.0 On-link 172.26.34.2 43 10.4.0.0 255.255.255.0 On-link 172.26.34.2 43 =========================================================================== Persistent Routes: None
Se estiver a utilizar o peering de rede virtual, confirme que seguiu as instruções para definir Permitir o Trânsito de Gateway e utilizar Gateways Remotos.
Se estiver a utilizar o peering de rede virtual para ligar uma aplicação do Serviço de Aplicações do Azure alojada e a rede virtual do SQL Managed Instance tiver um intervalo de endereços IP públicos, confirme se as definições de aplicação alojada permitem que o tráfego de saída seja encaminhado para redes IP públicas. Siga as instruções em Integração de rede virtual regional.
Versões recomendadas de drivers e ferramentas
Embora versões mais antigas possam funcionar, a tabela a seguir lista as versões mínimas recomendadas das ferramentas e drivers para se conectar à Instância Gerenciada SQL:
Driver/ferramenta | Versão |
---|---|
.NET Framework | 4.6.1 (ou .NET Core) |
Controlador ODBC | v17 |
Controlador PHP | 5.2.0 |
Controlador JDBC | 6.4.0 |
Controlador Node.js | 2.1.1 |
Controlador OLEDB | 18.0.2.0 |
SSMS | 18.0 ou superior |
OMU | 150 ou superior |
Próximos passos
- Para obter informações sobre a Instância Gerenciada SQL, consulte O que é a Instância Gerenciada SQL?.
- Para obter um tutorial mostrando como criar uma nova instância gerenciada, consulte Criar uma instância gerenciada.