2013-03-26 135 views
5

我有一個SQL Azure數據庫和Azure虛擬機,連接到數據庫的應用程序。從Azure VM連接到SQL Azure - 內部IP或公共VIP

  • 他們是在同一個數據中心相同天青 預訂下。

  • 我加入了虛擬機的公共虛擬IP的管理 門戶網站的服務器配置頁面 允許的IP地址列表。

  • Windows Azure服務在「允許的服務」 部分中標記爲「是」。

當嘗試連接時,我收到例外:「客戶端IP地址爲‘X.X.X.X’是不允許訪問該服務器」,其中X.X.X.X是虛擬機的內部IP。我對在允許的IP規則中使用內部IP猶豫不決。 SQL Azure不應該在連接期間看到VM的公共IP嗎?

回答

2

我很猶豫在允許的IP規則中使用內部IP。 SQL不應該在連接期間看到虛擬機的公共IP嗎?

呼叫正在通過內部網絡進行,因此永遠不會離開數據中心。如下,只允許通過打開的Azure數據庫下面的IP範圍內的呼叫爲什麼不加一條規則:

10.0.0.0 to 10.0.0.255 

在你不必擔心你的VM瞬時IP上述情況。

+0

這是不是意味着,任何其他虛擬機的數據中心,包括其他租戶內將能夠連接到數據庫? T – MikeJ 2013-03-26 16:01:12

+1

貴賓代表虛擬IP,是外部的,公共的和計量的。 DIP是內部的,私有的和負載平衡的。 Azure提供了一個API來發現你的DIP - 不要以爲你知道它們是因爲它們是動態IP。 Azure不會讓您看到系統內的其他DIP。參考:http://blog.mccrory.me/2010/12/13/microsoft-azure-cloud-top-20-lessons-learned-about-msfts-paas/ – QFDev 2013-03-26 16:15:10

1

也許嘗試查看允許您通過腳本管理防火牆規則的azure cmdlet。你可以添加一個啓動任務來更新一個具有新IP的特定規則,如果它改變了,遷移或重新啓動。

Specificially這些PowerShell命令:

  • 新SqlAzureFirewallRule - 新增加了SQL Azure的防火牆規則來一個 服務器。
  • Get-SqlAzureFirewallRules - 返回指定的Sql Azure服務器的 的防火牆規則。
  • Remove-SqlAzureFirewallRule - 刪除現有的Sql Azure fireall規則。

Sql Azure Cmdlets