{"id":11663,"date":"2018-09-10T11:26:23","date_gmt":"2018-09-10T09:26:23","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/"},"modified":"2018-09-10T11:26:23","modified_gmt":"2018-09-10T09:26:23","slug":"connecting-to-azure-sql-managed-instance-from-on-premise-network","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/","title":{"rendered":"Connecting to Azure SQL Managed Instance from on-premise network"},"content":{"rendered":"<p>A couple of weeks ago, I wrote up about <a href=\"https:\/\/www.dbi-services.com\/blog\/introducing-sql-managed-instances-on-azure\/\" target=\"_blank\" rel=\"noopener noreferrer\">my first immersion\u00a0into the SQL Server managed instances<\/a> (SQLMIs), a new deployment model of Azure SQL Database which provides near 100% compatibility with the latest SQL Server on-premises Database Engine. In the previous blog post, to test a connection to this new service, I installed an Azure virtual machine on the same VNET (172.16.0.0\/16) including SQL Server management studio. For testing purpose, we don\u2019t need more, but in real production scenario chances are your SQL Azure MI would be part of your on-premise network with a more complex Azure network topology including VNET, Express Route or VPN S2S as well. Implementing such infrastructure won\u2019t be likely your concern if you are a database administrator. But you need to be aware of the underlying connectivity components and how to diagnose possible issues or how to interact with your network team in order to avoid being under pressure and feeling the wrath of your application users too quickly \ud83d\ude42<\/p>\n<p>So, I decided to implement this kind of infrastructure in my lab environment but if you\u2019re not a network guru like me you will likely face some difficulties to configure some components especially when it comes the VPN S2S. In addition, you have to understand different new notions about Azure network before hoping to see your infrastructure work correctly. As an old sysadmin, I admit it was a very great opportunity to turn my network learning into a concrete use case. Let\u2019s first set the initial context. Here my lab environment I&#8217;ve been using for a while for different purposes as internal testing and event presentations as well. It addresses a lot of testing scenarios including multi-subnet architectures with SQL Server FCIs and SQL Server availability groups.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27745\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\" alt=\"blog 142 - 1 - lab environment\" width=\"500\" height=\"600\" \/><\/a><\/p>\n<p>bviously, some static routes are already set up to allow network traffic between my on-premise subnets. As you guessed, the game consisted in extending this on-premise network to my SQL MI network on Azure. As a reminder, SQL MI is not reachable from a public endpoint and you may connect only from an internal network (either directly from Azure or from your on-premise network). As said previously one of my biggest challenges was to configure my remote access servers as VPN server to communicate with my SQL MI Azure network. Fortunately, you have a plenty of pointers on the internet that may help you to achieve this task.\u00a0 This <a href=\"https:\/\/blogs.technet.microsoft.com\/jletsch\/2016\/03\/15\/lets-configure-azure-site-to-site-vpn-with-rras-in-azure-resource-manager\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog post<\/a> is a good walk-through by the way. In my context, you will note I also had to apply special settings to my home routeur in order to allow <em>IPsec Passthrough<\/em> as well as to add my RRAS server internal IP (192.168.0.101) to the DMZ. I also used IKEv2 VPN protocol and pre-shared key for authentication between my gateways on-premise and on Azure. The VPN S2S configuration is environment specific and this probably why doing a presentation to customer or at events is so difficult especially if you\u2019re outside of your own network.<\/p>\n<p>Anyway, let\u2019s talk about the Azure side configuration. My Azure network topology is composed of two distinct VNETs as follows:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-2-VNET-configuration-e1536577637546.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27746\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-2-VNET-configuration-e1536577637546.jpg\" alt=\"blog 142 - 2 - VNET configuration\" width=\"800\" height=\"317\" \/><\/a><\/p>\n<p>The connection between my on-premise and my Azure networks are defined as shown below:<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">$vpnconnection = Get-AzureRmVirtualNetworkGatewayConnection -ResourceGroupName dbi-onpremises-rg \n$vpnconnection.Name\n$vpnconnection.VirtualNetworkGateway1.Id\n$vpnconnection.LocalNetworkGateway2.Id \n\ndbi-vpn-connection\n\/subscriptions\/xxxx\/resourceGroups\/dbi-onpremises-rg\/providers\/Microsoft.Network\/virtualNetworkGateways\/dbi-virtual-network-gw\n\/subscriptions\/xxxx\/resourceGroups\/dbi-onpremises-rg\/providers\/Microsoft.Network\/localNetworkGateways\/dbi-local-network-gw<\/pre>\n<p>&nbsp;<\/p>\n<p>The first VNET (172.17.x.x) is used as hub virtual network and owns my gateway. The second one (172.16.x.x) concerns is SQL MI VNET:<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">Get-AzureRmVirtualNetwork | Where-Object { $_.Name -like '*-vnet' } | % {\n\n    Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $_ | Select Name, AddressPrefix\n} \n\nName          AddressPrefix  \n----          -------------  \ndefault       172.17.0.0\/24  \nGatewaySubnet 172.17.1.0\/24  \nvm-net        172.16.128.0\/17\nsql-mi-subnet 172.16.0.0\/24<\/pre>\n<p>&nbsp;<\/p>\n<p>My azure gateway subnet (<em>GatewaySubnet<\/em>) is part of the VPN connectivity with the related gateway connections:<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">$gatewaycfg = Get-AzureRmVirtualNetworkGatewayConnection -ResourceGroupName dbi-onpremises-rg -Name dbi-vpn-connection \n$gatewaycfg.VirtualNetworkGateway1.Id\n$gatewaycfg.LocalNetworkGateway2.Id \n\n\/subscriptions\/xxxx\/resourceGroups\/dbi-onpremises-rg\/providers\/Microsoft.Network\/virtualNetworkGateways\/dbi-virtual-network-gw\n\/subscriptions\/xxxx\/resourceGroups\/dbi-onpremises-rg\/providers\/Microsoft.Network\/localNetworkGateways\/dbi-local-network-gw<\/pre>\n<p>&nbsp;<\/p>\n<p>The <em>dbi-local-network-gw\u00a0<\/em>local gateway\u00a0includes the following addresses prefix that correspond to my local lab environment network:<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">$gatewaylocal = Get-AzureRMLocalNetworkGateway -ResourceGroupName dbi-onpremises-rg -Name dbi-local-network-gw \n$gatewaylocal.LocalNetworkAddressSpace.AddressPrefixes \n\n192.168.0.0\/16\n192.168.5.0\/24\n192.168.40.0\/24<\/pre>\n<p>&nbsp;<\/p>\n<p>Note that I&#8217;ve chosen a static configuration but my guess is that I could turn to the BGP protocol instead to make things more dynamic. I will talk quickly about using BGP with routing issues at the end of the write-up. But at this stage, some misconfiguration steps are missing to hope reaching out my SQL MI instance from my lab environment network. Indeed, although my VPN connection status is ok, I was able only to reach out my <em>dbi-on-premise-vnet<\/em> VNET and I need a way to connect to the <em>sql-mi-vnet<\/em> VNET. So, I had to turn on both the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-network\/virtual-network-peering-overview\" target=\"_blank\" rel=\"noopener noreferrer\">virtual network peering<\/a> and <a href=\"http:\/\/www.deployazure.com\/network\/virtual-network\/vnet-peering-and-gateway-transit-with-s2s-vpn\/\" target=\"_blank\" rel=\"noopener noreferrer\">gateway transit<\/a> mechanism. Peering 2 VNETs Azure automatically routes traffic between them by the way.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-3-VNET-configuration-peering-e1536577690593.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27747\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-3-VNET-configuration-peering-e1536577690593.jpg\" alt=\"blog 142 - 3 - VNET configuration peering\" width=\"800\" height=\"319\" \/><\/a><\/p>\n<p>Here the peering configuration I applied\u00a0to my <em>dbi-onpremises-vnet<\/em> VNET (first VNET):<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">Get-AzureRmVirtualNetworkPeering -ResourceGroupName dbi-onpremises-rg -VirtualNetworkName dbi-onpremises-vnet | `\nSelect-Object VirtualNetworkName, PeeringState, AllowVirtualNetworkAccess, AllowForwardedTraffic, AllowGatewayTransit, UseRemoteGateways \n\n$peering = Get-AzureRmVirtualNetworkPeering -ResourceGroupName dbi-onpremises-rg -VirtualNetworkName dbi-onpremises-vnet \nWrite-Host \"Remote virtual network peering\"\n$peering.RemoteVirtualNetwork.Id \n\nVirtualNetworkName        : dbi-onpremises-vnet\nPeeringState              : Connected\nAllowVirtualNetworkAccess : True\nAllowForwardedTraffic     : True\nAllowGatewayTransit       : True\nUseRemoteGateways         : False\n\nRemote virtual network peering\n\/subscriptions\/xxxxx\/resourceGroups\/sql-mi-rg\/providers\/Microsoft.Network\/virtualNetworks\/sql-mi-vnet\n<\/pre>\n<p>&nbsp;<\/p>\n<p>And here the peering configuration of my sql-mi-vnet VNET (2<sup>nd<\/sup> VNET):<\/p>\n<pre class=\"brush: shell; gutter: true; first-line: 1\">Get-AzureRmVirtualNetworkPeering -ResourceGroupName sql-mi-rg -VirtualNetworkName sql-mi-vnet | `\nSelect-Object VirtualNetworkName, PeeringState, AllowVirtualNetworkAccess, AllowForwardedTraffic, AllowGatewayTransit, UseRemoteGateways \n\n$peering = Get-AzureRmVirtualNetworkPeering -ResourceGroupName sql-mi-rg -VirtualNetworkName sql-mi-vnet\nWrite-Host \"Remote virtual network peering\"\n$peering.RemoteVirtualNetwork.Id \n\nVirtualNetworkName        : sql-mi-vnet\nPeeringState              : Connected\nAllowVirtualNetworkAccess : True\nAllowForwardedTraffic     : True\nAllowGatewayTransit       : False\nUseRemoteGateways         : True\n\nRemote virtual network peering\n\/subscriptions\/xxxxx\/resourceGroups\/dbi-onpremises-rg\/providers\/Microsoft.Network\/virtualNetworks\/dbi-onpremises-vnet<\/pre>\n<p>&nbsp;<\/p>\n<p>Note that to allow traffic that comes from my on-premise network to go through my first VNET (<em>dbi-onpremises-vnet<\/em>) at the destination of the second one (<em>sql-mi-vnet<\/em>), I need to enable some configuration settings as <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-network\/virtual-network-peering-overview#gateways-and-on-premises-connectivity\" target=\"_blank\" rel=\"noopener noreferrer\">Allow Gateway Transit<\/a>, <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-network\/virtual-network-manage-peering\" target=\"_blank\" rel=\"noopener noreferrer\">Allow Forwarded Traffic<\/a> and <a href=\"http:\/\/www.deployazure.com\/network\/virtual-network\/vnet-peering-and-gateway-transit-with-s2s-vpn\/\" target=\"_blank\" rel=\"noopener noreferrer\">remote gateway<\/a> on the concerned networks.<\/p>\n<p>At this stage, I still faced a weird issue because I was able to connect to a virtual machine installed on the same VNET than my SQL MI but no luck with the SQL instance. In addition, the <a href=\"https:\/\/docs.microsoft.com\/en-us\/sysinternals\/downloads\/psping\" target=\"_blank\" rel=\"noopener noreferrer\">psping<\/a> command output confirmed my connectivity issue letting me think about a routing issue.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-5-psping-command-output-e1536577891463.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27748\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-5-psping-command-output-e1536577891463.jpg\" alt=\"blog 142 - 5 - psping command output\" width=\"800\" height=\"224\" \/><\/a><\/p>\n<p>Routes from my on-premise network seemed to be well configured as show below. The VPN is a dial up internet connection in my case.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-6-local-route-e1536577931793.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27749\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-6-local-route-e1536577931793.jpg\" alt=\"blog 142 - 6 - local route\" width=\"800\" height=\"398\" \/><\/a><\/p>\n<p>I also got the confirmation that my on-premise network packets were correctly sent through my Azure VPN gateway by the Microsoft support team (a particular to Filipe B\u00e1rrios &#8211; support engineer Azure Networking). In fact, I got stuck a couple of days without to figure out exactly what happens. Furthermore <a href=\"http:\/\/www.deployazure.com\/network\/virtual-network\/vnet-peering-and-gateway-transit-with-s2s-vpn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Checking effective routes<\/a> seemed to not viable option in my case because there is no explicit network interface with SQL MI. Please feel free to comment if I get wrong on this point. Fortunately, I found out a <a href=\"https:\/\/blogs.msdn.microsoft.com\/sqlserverstorageengine\/2018\/07\/12\/validate-your-azure-network-environment-for-sql-managed-instance\/\" target=\"_blank\" rel=\"noopener noreferrer\">PowerShell script<\/a> provided by Jovan Popovic (MSFT) which seems to have put me on the right track:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-4-VNET-PGP-configuration.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27751\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-4-VNET-PGP-configuration.jpg\" alt=\"blog 142 - 4 - VNET PGP configuration\" width=\"851\" height=\"166\" \/><\/a><\/p>\n<p>Referring to the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/vpn-gateway\/vpn-gateway-bgp-overview\">Microsoft documentation<\/a>, it seems PGP propagation could be very helpful in my case.<\/p>\n<p><strong><em>Support transit routing between your on-premises networks and multiple Azure VNets<\/em><\/strong><\/p>\n<p><em>BGP enables multiple gateways to learn and propagate prefixes from different networks, whether they are directly or indirectly connected. This can enable transit routing with Azure VPN gateways between your on-premises sites or across multiple Azure Virtual Networks.<\/em><\/p>\n<p>After enabling the corresponding option in the SQL MI route table and <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/sql-database\/sql-database-managed-instance-connect-app\" target=\"_blank\" rel=\"noopener noreferrer\">opening the SQL MI ports<\/a> in my firewall connection was finally successful.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-8-sql-mi-route-bgp.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27752\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-8-sql-mi-route-bgp.jpg\" alt=\"blog 142 - 8 - sql mi route bgp\" width=\"491\" height=\"331\" \/><\/a><\/p>\n<p>&#8230;<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-7-psping-output-2-e1536603319385.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27784\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-7-psping-output-2-e1536603319385.jpg\" alt=\"blog 142 - 7 - psping output 2\" width=\"800\" height=\"209\" \/><\/a><\/p>\n<p>Hope it helps!<\/p>\n<p>See you<\/p>\n<p><span style=\"float: none;background-color: #ffffff;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px;text-transform: none\">By David Barbarin<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of weeks ago, I wrote up about my first immersion\u00a0into the SQL Server managed instances (SQLMIs), a new deployment model of Azure SQL Database which provides near 100% compatibility with the latest SQL Server on-premises Database Engine. In the previous blog post, to test a connection to this new service, I installed an [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":11664,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[],"type_dbi":[],"class_list":["post-11663","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Connecting to Azure SQL Managed Instance from on-premise network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connecting to Azure SQL Managed Instance from on-premise network\" \/>\n<meta property=\"og:description\" content=\"A couple of weeks ago, I wrote up about my first immersion\u00a0into the SQL Server managed instances (SQLMIs), a new deployment model of Azure SQL Database which provides near 100% compatibility with the latest SQL Server on-premises Database Engine. In the previous blog post, to test a connection to this new service, I installed an [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-10T09:26:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"Connecting to Azure SQL Managed Instance from on-premise network\",\"datePublished\":\"2018-09-10T09:26:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\"},\"wordCount\":1079,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\",\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\",\"name\":\"Connecting to Azure SQL Managed Instance from on-premise network\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\",\"datePublished\":\"2018-09-10T09:26:23+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg\",\"width\":500,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connecting to Azure SQL Managed Instance from on-premise network\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Connecting to Azure SQL Managed Instance from on-premise network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/","og_locale":"en_US","og_type":"article","og_title":"Connecting to Azure SQL Managed Instance from on-premise network","og_description":"A couple of weeks ago, I wrote up about my first immersion\u00a0into the SQL Server managed instances (SQLMIs), a new deployment model of Azure SQL Database which provides near 100% compatibility with the latest SQL Server on-premises Database Engine. In the previous blog post, to test a connection to this new service, I installed an [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/","og_site_name":"dbi Blog","article_published_time":"2018-09-10T09:26:23+00:00","og_image":[{"width":500,"height":600,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"Connecting to Azure SQL Managed Instance from on-premise network","datePublished":"2018-09-10T09:26:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/"},"wordCount":1079,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg","articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/","url":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/","name":"Connecting to Azure SQL Managed Instance from on-premise network","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg","datePublished":"2018-09-10T09:26:23+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-142-1-lab-environment-e1536577454401.jpg","width":500,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/connecting-to-azure-sql-managed-instance-from-on-premise-network\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Connecting to Azure SQL Managed Instance from on-premise network"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11663"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11663\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/11664"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11663"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}