Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
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:
- Pontos finais privados
- Emparelhamento de rede virtual do Azure
- 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). 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:
- Conexão VPN site a site (portal do Azure, PowerShell, CLI do Azure)
- Conexão do Azure ExpressRoute
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:
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 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 gatewaysopção definida - A rede virtual emparelhada deve ter a
Allow gateway transitopção definida
Este cenário é ilustrado no diagrama a seguir:
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.
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: NoneSe 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.
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 |
| 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.