Azure SQL Managed Instance is almost 100% compatible with the Database Engine of the Enterprise
Edition of
SQL Server, in fact, it combines the best features of SQL Server and
Azure SQL Database.
Accessing a Managed Instance from outside the virtual network
In order to access a managed instance from outside the virtual network, a public endpoint must be enabled.
With an enabled public endpoint, the managed instance can be accessed from multi-tenant Azure services like Power BI or
Azure App Service, or from an on-prem network.
In order to increase protection of the data stored in a managed instance, the public endpoint is enabled in a two step process that follows the principle of separation of duties (SoD):
- The administrator of the managed instance enables the public endpoint
- A network adminsitrator allows traffic (using a network security group).
PowerShell
With PowerShell, the first step (enabling the public endpoint) can be achieved like so:
$sqlInstance = get-azSqlInstance -resourceGroupName $tq84_resourceGroupName -name 'nameofinstance'
$sqlInstance = $sqlInstance | set-azSqlInstance -publicDataEndpointEnabled $true -force
How the second step can be achieved with Powershell: I don't know.
Migration of on-prem databases into the Cloud
Migrating an on-prem
SQL Server application to a Managed Instance should not be too hard.
It should be kept in mind, however, that there some functional differences between Managed Instance and SQL Server, so that the application possibly needs to be changed before moving it into the
Cloud.