Partilhar via


Conectar seu aplicativo à Instância Gerenciada SQL do Azure

Aplica-se a:Azure SQL Managed Instance

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áquinas Virtuais. 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 muitos cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.

Você também pode habilitar o acesso a dados à sua instância gerenciada 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 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.

Diagrama demonstrando alta disponibilidade.

Conecte-se de dentro da mesma rede virtual

Conectar um aplicativo dentro da mesma rede virtual que a Instância Gerenciada SQL é 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 rede virtual 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:

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). No entanto , 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.

Conecte-se a partir 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 SQL 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:

Se você puder estabelecer uma conexão local com o Azure, mas não puder estabelecer uma conexão com a Instância Gerenciada do SQL, verifique se o caminho de rede do seu cliente para a instância gerenciada do SQL atende aos requisitos de conectividade para o tipo de conexão selecionado.

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 SQL 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 rede virtual diferente: pontos de extremidade privados, emparelhamento de rede virtual do Azure ou um gateway VNet-to-VNet.

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

Diagrama mostrando emparelhamento de rede virtual.

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:

  1. 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.
  2. 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 rede virtual diferente. Para obter acesso a dados à sua instância gerenciada SQL de fora de uma rede virtual, consulte Configurar pontos de extremidade públicos 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. Esse caso requer a seguinte configuração para ser configurado:

  • 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:

Diagrama para emparelhamento de aplicativos integrado.

Observação

O recurso de integração de rede virtual não integra um aplicativo a 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 as seguintes configurações:

  • 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 NSG (Grupo de Segurança de Rede) configurado na sub-rede da VM que pode estar bloqueando o acesso. Além disso, permita o tráfego de saída na porta SQL 1433, uma vez que é necessário conectar-se via redirecionamento dentro do limite do Azure. Para obter mais informações, examine os requisitos nos tipos de conexão de Instância Gerenciada SQL 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.

    Captura de ecrã a mostrar números de entrada/saída no portal do Azure.

  • 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.

    Captura de ecrã a mostrar o route.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 emparelhamento de rede virtual, certifique-se de que seguiu as instruções para definir Permitir Trânsito de Gateway e Utilizar Gateways Remotos.

  • Se você estiver usando o emparelhamento de rede virtual para conectar um aplicativo hospedado do Serviço de Aplicativo do Azure e a rede virtual da Instância Gerenciada 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 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
Driver PHP 5.2.0
Controlador JDBC 6.4.0
Node.js motorista 2.1.1
Driver OLEDB 18.0.2.0
SSMS 18.0 ou superior
SMO 150 ou superior

Observação

Versões mais antigas dos drivers JDBC 4.0 e 4.1 (disponíveis com Java SE 6 e Java SE 7, respectivamente) podem aparecer para o servidor como compatíveis com TDS 7.4, mesmo que não implementem completamente o TDS 7.4. Esses drivers não podem se conectar a instâncias gerenciadas SQL com seu tipo de conexão definido para redirecionamento. Atualize seus drivers para JDBC 4.2 ou posterior ou alterne o tipo de conexão da instância para proxy.