我有一个SQL Azure数据库和Azure虚拟机与一个应用程序连接到数据库。
-
它们位于相同的数据中心和相同的Azure下订阅。
-
我将虚拟机的公共虚拟IP添加到列表中管理界面的服务器配置页面允许的IP地址门户。
-
Windows Azure服务在"允许的服务"中标记为"是"部分。
尝试连接时,我收到异常:" IP地址为'x.x.x.x'的客户端不允许访问服务器",其中x.x.x.x是虚拟机的内部IP。我对在允许的IP规则中使用内部IP犹豫不决。SQL Azure在连接期间不应该看到VM的公共IP吗?
我犹豫在允许的IP规则中使用内部IP。不应该SQLAzure在连接期间看到虚拟机的公共IP吗?
呼叫是通过内部网络进行的,因此实际上从未离开数据中心。为什么不像下面这样添加一个规则,只允许内部调用,在Azure数据库上打开以下IP范围:
10.0.0.0 to 10.0.0.255
在上面的情况下,你不需要担心你的虚拟机上的瞬态IP
也许可以尝试查看azure cmdlet,它允许您通过脚本管理防火墙规则。您可以添加一个启动作业,以使用新IP更新特定规则,如果虚拟机更改,则执行迁移或重新启动。
特别是这些powershell cmdlet:
- new - sqlazurefirewallrule -添加一个新的SqlAzure防火墙规则服务器。
- Get-SqlAzureFirewallRules -返回指定的Sql Azure服务器。
- Remove-SqlAzureFirewallRule -删除现有的Sql Azure fireall规则。