我们有一个虚拟机,该虚拟机的vnet包含一个子网(称为子网数据子网),在Eastus2区域中具有Microsoft.Sql服务端点。
在同一预订中,我们使用不同的资源组在同一区域的同一区域中建立了一个Azure SQL数据库,该数据库使用vnet规则,该规则使用了来自虚拟机虚拟网络的上述数据子网。
当我们尝试从VM连接到SQL Server时,出现以下错误消息:
Invoke-Sqlcmd : Cannot open server 'yada' requested by the login. Client with IP address
'137.yada.yada.yada' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or
run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.
但是我们已经将vnet子网规则添加到sql服务器中,以用于该服务器已具有的子网。看起来它似乎正在尝试使用公共IP地址而不是子网连接到SQL Server。确实,子网AddressPrefix的开头是172 ...而不是137。
我们还确保vm,vnet和sql服务器位于同一区域。
我们已经使用完全不同的订阅在Azure和其他VM上成功设置了此虚拟机,但是该VM具有多个子网(在一个vnet下),这是我们之前没有测试过的。
关于我们需要做更多事情的任何想法吗?