Compartilhar via


Conectar seu aplicativo à Instância Gerenciada de SQL do Azure

Aplica-se a:Instância Gerenciada de SQL do Azure

Este artigo descreve como conectar seu aplicativo à Instância Gerenciada de SQL do Azure em vários cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.

Atualmente, 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. Por exemplo, Ambiente do Serviço de Aplicativo do Azure, Máquinas Virtuais do Azure e Conjuntos de Dimensionamento de Máquinas Virtuais. Você também pode adotar a abordagem de nuvem híbrida ("mista") e manter seus aplicativos no local. Seja qual for a opção que você fizer, seu aplicativo pode se conectar à Instância Gerenciada de SQL do Azure em muitos cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.

Você também pode habilitar o acesso de dados à sua instância gerenciada de SQL 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 redes virtuais por meio de VPN. Para realizar esses e outros cenários semelhantes, confira Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure.

Diagrama demonstrando alta disponibilidade.

Conectar de dentro da mesma rede virtual

Conectar um aplicativo dentro da mesma rede virtual que a Instância Gerenciada de SQL é o cenário mais simples. As máquinas virtuais dentro da rede virtual podem se conectar entre si diretamente, mesmo se estiverem 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 SQL Managed Instance é configurar a cadeia de conexão para direcionar seu VNet-local endpoint.

Conectar de dentro de uma rede virtual diferente

Conectar um aplicativo quando ele reside em uma rede virtual diferente daquela da Instância Gerenciada de SQL requer que o aplicativo primeiro obtenha acesso à rede virtual onde a Instância Gerenciada de SQL está implantada ou à própria Instância Gerenciada de SQL. As duas redes virtuais não precisam estar na mesma assinatura.

Há três opções para se conectar a um Instância Gerenciada de SQL em uma rede virtual diferente:

Dos três pontos de extremidade privados, os pontos de extremidade privados são a opção mais segura e econômica de recursos pelo seguinte:

  • exposição apenas à Instância Gerenciada de SQL de sua rede virtual.
  • permissão apenas de conectividade unidirecional.
  • exigência de 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 do Azure de backbone, portanto, não há nenhuma penalidade de latência perceptível para comunicação entre limites de rede virtual. Há suporte para emparelhamento de rede virtual entre redes em todas as regiões (emparelhamento de rede virtual global). No entanto, as instâncias hospedadas em sub-redes criadas antes de 22 de setembro de 2020 só dão suporte ao emparelhamento em sua região.

Conectar-se do local

Você pode conectar seu aplicativo local ao ponto de extremidade local da VNet da Instância Gerenciada de SQL. Para acessá-la localmente, você precisa fazer uma conexão site a site entre o aplicativo e a rede virtual da Instância Gerenciada de SQL. Se o acesso somente dados à sua instância gerenciada de SQL for suficiente, você poderá se conectar a ela de fora de uma rede virtual por meio de um ponto de extremidade público – examine Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure para saber mais.

Há duas opções para conectar um aplicativo local a uma rede virtual do Azure:

Se você estabelecer uma conexão com o Azure do local, mas não conseguir estabelecer uma conexão com a Instância Gerenciada de SQL, verifique se o firewall abriu conexões de saída com a porta SQL 1433 e o intervalo de portas 11000-11999 para redirecionamento.

Conectar uma caixa do desenvolvedor

Também é possível conectar sua caixa de desenvolvedor à Instância Gerenciada de SQL. Para acessá-la na caixa de desenvolvedor pela rede virtual, primeiro você precisa fazer uma conexão entre a caixa de desenvolvedor e a rede virtual da Instância Gerenciada de SQL. Para isso, configure uma conexão ponto a site a uma rede virtual usando a autenticação de certificado nativa do Azure. Para ver mais informações, confira Configurar uma conexão ponto a site para conectar-se a uma Instância Gerenciada de SQL do Azure de um computador local.

Para obter acesso a dados à instância gerenciada de SQL de fora de uma rede virtual, consulte Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure.

Conectar-se a uma rede spoke

Outro cenário comum é onde um gateway de VPN é instalado em uma rede virtual separada (e talvez assinatura) - rede spoke - daquela que hospeda a Instância Gerenciada de SQL (rede hub). A conectividade com a Instância Gerenciada de SQL da rede spoke é configurada por meio de uma das opções listadas em Conectar de dentro de uma rede virtual diferente: pontos de extremidade privados, emparelhamento de rede virtual do Azure ou um gateway VNet para VNet.

O diagrama de arquitetura de exemplo a seguir mostra o emparelhamento de rede virtual:

Diagrama mostrando o emparelhamento de rede virtual.

Se você estiver emparelhando redes hub e spoke, verifique se o gateway de VPN vê os endereços IP da rede do hub. Para fazer isso, faça as seguintes alterações nas Configurações de emparelhamento:

  1. Na rede virtual que hospeda o gateway de VPN (rede spoke), acesse Emparelhamentos, vá para a conexão de rede virtual emparelhada para a Instância Gerenciada de SQL e selecione Permitir Trânsito de Gateway.
  2. Na rede virtual que hospeda a Instância Gerenciada de SQL (rede de hub), acesse Emparelhamentos, vá para a conexão de rede virtual emparelhada para o gateway de VPN e selecione Usar gateways remotos.

Conectar o Serviço de Aplicativo do Azure

Você também pode conectar um aplicativo hospedado por Serviço de Aplicativo do Azure quando ele é integrado à sua rede virtual. Para fazer isso, selecione um dos mecanismos listados no Connect de dentro de uma rede virtual diferente. Para obter acesso a dados à instância gerenciada de SQL de fora de uma rede virtual, consulte Configurar pontos de extremidade públicos na Instância Gerenciada de SQL do Azure.

Um caso especial para conectar o Serviço de Aplicativo do Azure à Instância Gerenciada de SQL é quando você integra o Serviço de Aplicativo do Azure a uma rede emparelhada a uma rede virtual da Instância Gerenciada de SQL. Esse caso exige a definição da seguinte configuração:

  • A rede virtual da Instância Gerenciada de SQL NÃO deve ter um gateway
  • A rede virtual da Instância Gerenciada de SQL deve ter a opção Use remote gateways definida
  • A rede virtual emparelhada deve ter a opção Allow gateway transit definida

Este cenário é ilustrado no seguinte diagrama:

Diagrama para emparelhamento de aplicativo integrado.

Observação

O recurso de integração de rede virtual não integra um aplicativo a uma rede virtual que tem um gateway do ExpressRoute. Mesmo que o gateway do ExpressRoute esteja configurado no modo de coexistência, a integração de rede virtual não funcionará. Se for necessário acessar recursos por meio de uma conexão do ExpressRoute, você poderá usar um Ambiente do Serviço de Aplicativo executado na Rede Virtual.

Para solucionar problemas de acesso ao Serviço de Aplicativo do Azure por meio da rede virtual, confira Solucionar problemas de rede virtual e aplicativos.

Solucionar problemas de conectividade

Para solucionar problemas de conectividade, examine as seguintes configurações:

  • Se você não conseguir se conectar à Instância Gerenciada de SQL de uma máquina virtual do Azure na mesma rede virtual, mas uma sub-rede diferente. Verifique se você tem um NSG (Grupo de Segurança de Rede) configurado na sub-rede da máquina virtual que pode estar bloqueando o acesso. Além disso, abra conexões de saída na porta SQL 1433 e portas no intervalo 11000-11999, já que essas portas são necessárias para se conectar por meio de redirecionamento dentro do limite do Azure.

  • Certifique-se de que a propagação de rotas de gateway esteja 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 verificar se os números de Entrada/Saída são mostrados. Números diferentes de zero indicam que o Azure está roteando o tráfego de/para o local.

    Captura de tela mostrando os números de entrada/saída no portal do Azure.

  • Verifique se o computador cliente (que executa 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.

    Captura d tela mostrando route.txt.

    Conforme 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 é por meio do comando a seguir. A saída mostra as rotas para as diversas 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 você estiver usando o emparelhamento de rede virtual, verifique se seguiu as instruções para definir Permitir Trânsito de Gateway e Usar Gateways Remotos.

  • Se você estiver usando o emparelhamento de rede virtual para conectar um aplicativo hospedado no Serviço de Aplicativo do Azure e a rede virtual da Instância Gerenciada de SQL tiver um intervalo de endereços IP públicos, verifique se as configurações do aplicativo hospedado permitem que o tráfego de saída seja roteado para redes IP públicas. Siga as instruções em Integração de rede virtual regional.

Embora as versões mais antigas possam funcionar, a tabela a seguir lista as versões mínimas das ferramentas e drivers recomendadas para conexão com uma Instância Gerenciada de SQL:

Driver/ferramenta Versão
.NET Framework 4.6.1 (ou .NET Core)
driver ODBC v17
Driver PHP 5.2.0
Driver JDBC 6.4.0
Driver Node.js 2.1.1
Driver OLE DB 18.0.2.0
SSMS 18.0 ou superior
SMO 150 ou superior