2014-02-26 65 views
2

我們將應用程序從物理服務器遷移到Azure虛擬機(一臺Web服務器,一臺數據庫服務器),並且它的運行狀況非常好。Azure虛擬機上SQL Server的連接字符串

昨天晚上出現了一個停機,當Web服務器由於某些TBD原因而離線時,以及當它回來時,連接字符串開始失敗......錯誤是所有網絡路徑未找到的變體。

我知道虛擬機的內部IP可以在我的關聯組內改變,但我沒有看到很多關於我應該使用哪個IP或名稱的直接答案。

現在我的連接字符串看起來是這樣的:

Server=MyDatabaseServerName;Database=xxxx;User ID=xxxx;Password=xxxx; 

我覺得也許MyDatabaseServerName被解析錯誤錯誤的IP一會兒那裏,也許我應該用我的cloudapp.net名代替,是這樣的:

Server=xxx.cloudapp.net, 1433;Database=xxxx;User ID=xxxx;Password=xxxx; 

...但是,我擔心會一路走出去到互聯網,並早在

那麼什麼是最安全的方式到g在這裏?

回答

2

最好的辦法是創建一個虛擬網絡並將SQL Server移入其中。

然後配置您的雲服務也加入同一個虛擬網絡。這樣你的SQL服務器就不是公共可用的,並且端口1433只能在Azure網絡內部使用,並且更多的是你的虛擬網絡。

然後在連接字符串看起來像:

server=tcp:sql1prod.myvirtualnetwork.prod;User ID=user;Password=yourpassword 

在我們的環境,我們有兩個子網「前」和「後退」 - 雲服務加入前,我們的SQL集羣是「返回」。

+0

啊。我看到使用虛擬網絡的好處,儘管我們通過白名單入站連接獲得了一些好處。 如果您不在VPN之外,您會使用什麼名稱或IP?對此肯定有最佳做法。 (另外,我知道有人會提到端口1433的東西,那不是真正的端口,只是試圖幫助人們理解我在說什麼)。 –

+0

當我需要從外部連接時,我通常會暫時創建一個隨機映射到內部1433的外部端口;將它下載到我的IP,然後通過PUBLIC VIRTUAL IP(VIP)地址下列出的IP進行連接。 server = 123.123.123.123,69 您是否有理由不在Azure中使用虛擬網絡。我相信如果你不是外部連接,這些在Azure中是「免費的」。 – ProVega

+0

嗯,我確實有理由進行外部連接,但主要是當我部署數據庫更改時,我可以很好地使用VPN。但對於內部連接,如從Web服務器到數據庫服務器,如果沒有涉及VPN,您將使用什麼?有人告訴我使用外部名稱([service] .cloudapp.net,[port]),Azure會在內部路由它。但另一個人告訴我使用服務器名稱,顯然這是造成問題,所以我想獲得更多信息。 :) –

相關問題