概述
本主題介紹如何連接到運行于 Azure 虛擬機的 SQL Server 實例。 它介紹了一些常規連接方案,并提供了在 Azure VM 中配置 SQL Server 連接的詳細步驟。
Important
Azure 提供兩個不同的部署模型用于創建和處理資源:Resource Manager 和經典模型。 本文介紹如何使用經典部署模型。 Azure 建議大多數新部署使用 Resource Manager 模型。 如果使用的是 Resource Manager VM,請參閱使用 Resource Manager 連接到 Azure 上的 SQL Server 虛擬機。
連接方案
將客戶端連接到虛擬機上運行的 SQL Server 的方式各不相同,具體取決于客戶端的位置與計算機/網絡配置。 這些方案包括:
Note
使用下列任一方法進行連接之前,必須遵循本文中的步驟配置連接。
連接到同一云服務中的 SQL Server
可以在同一云服務中創建多個虛擬機。 若要了解此虛擬機方案,請參閱如何將虛擬機連接到虛擬網絡或云服務。 本方案介紹一臺虛擬機上的客戶端嘗試連接到運行于同一云服務中另一虛擬機的 SQL Server 時的情況。
在此方案中,可使用 VM名稱(在門戶中也顯示為計算機名或主機名)進行連接。 這是你在創建 VM 時為其提供的名稱。 例如,如果你將 SQL VM 命名為mysqlvm,則同一云服務中的客戶端 VM 可以使用以下連接字符串進行連接:
復制
"Server=mysqlvm;Integrated Security=false;User ID=;Password="
通過 Internet 連接到 SQL Server
如果想要通過 Internet 連接到 SQL Server 數據庫引擎,則必須創建虛擬機終結點以進行傳入 TCP 通信。 此 Azure 配置步驟將傳入 TCP 端口通信定向到虛擬機可以訪問的 TCP 端口。
若要通過 Internet 進行連接,必須使用 VM 的 DNS 名稱和(本文中稍后配置的)VM 終結點端口號。 若要查找 DNS 名稱,請導航到 Azure 門戶,然后選擇“虛擬機(經典)”。 然后選擇你的虛擬機。 “DNS 名稱”顯示在“概述”部分中。
例如,假設一臺經典虛擬機名為mysqlvm,其 DNS 名稱為mysqlvm7777.chinacloudapp.cn且 VM 終結點為57500。 假設正確配置了連接性,則可從 Internet 上的任意位置使用以下連接字符串訪問該虛擬機:
復制
"Server=mycloudservice.chinacloudapp.cn,57500;Integrated Security=false;User ID=;Password="
盡管客戶端可通過 Internet 進行連接,但這并不意味著任何人都可以連接到 SQL Server。 外部客戶端必須有正確的用戶名和密碼。 為了提高安全性,請不要對公共虛擬機終結點使用常用的 1433 端口。 如果可能,請考慮在終結點上添加 ACL 以將流量限制到你允許的客戶端。 有關在終結點上使用 ACL 的說明,請參閱管理終結點上的 ACL。
Note
務必注意,使用此方法與 SQL Server 通信時,Azure 數據中心的所有傳出數據都將服從一般出站數據傳輸定價。
連接到同一虛擬網絡中的 SQL Server
虛擬網絡支持其他方案。 你可以連接同一虛擬網絡中的 VM,即使這些 VM 位于不同的云服務中。 使用站點到站點 VPN,可以創建連接 VM 與本地網絡和計算機的混合體系結構。
虛擬網絡還可讓你將 Azure VM 加入域。 這是對 SQL Server 使用 Windows 身份驗證的唯一方式。 其他連接方案需要使用用戶名和密碼進行 SQL 身份驗證。
如果要配置域環境和 Windows 身份驗證,則不需要使用本文中的步驟來配置公共終結點或 SQL 身份驗證和登錄名。 在此方案中,你可以在連接字符串中指定 SQL Server VM 名稱以連接 SQL Server 實例。 以下示例假設同時已配置 Windows 身份驗證,并且用戶已獲得訪問 SQL Server 實例的權限。
復制
"Server=mysqlvm;Integrated Security=true"
在 Azure VM 中配置 SQL Server 連接的步驟
以下步驟演示了如何使用 SQL Server Management Studio (SSMS) 通過 Internet 連接到 SQL Server 實例。 但是,這些步驟同樣適用于使你的 SQL Server 虛擬機可以通過本地和 Azure 中運行的應用程序訪問。
你必須先完成下列各部分中描述的下列任務,然后才能從其他 VM 或 Internet 連接到 SQL Server 的實例:
下圖中概述了連接路徑:
為虛擬機創建 TCP 終結點
要從 Internet 訪問 SQL Server,虛擬機必須具有終結點以偵聽傳入的 TCP 通信。 此 Azure 配置步驟將傳入 TCP 端口通信定向到虛擬機可以訪問的 TCP 端口。
Note
如果你在同一云服務或虛擬網絡中連接,則不需要創建一個公開訪問的終結點。 在這種情況下,你可以繼續執行下一步。 有關詳細信息,請參閱連接方案。
在 Azure 門戶中,選擇“虛擬機(經典)”。
然后選擇 SQL Server 虛擬機。
選擇“終結點”,然后單擊“終結點”邊欄選項卡頂部的“添加”按鈕。
在“添加終結點”邊欄選項卡上,提供“名稱”,例如 SQLEndpoint。
選擇“TCP”作為“協議”。
為“公用端口”指定端口號,如“57500”。
為“專用端口”,指定 SQL Server 偵聽端口,默認為“1433”。
單擊“確定” 以創建終結點。
在 Windows 防火墻中為數據庫引擎的默認實例打開 TCP 端口
通過遠程桌面連接到虛擬機。 有關連接到 VM 的詳細說明,請參閱使用遠程桌面打開 SQL VM。
登錄后,在開始屏幕中,鍵入“WF.msc”,然后按 ENTER。
在“高級安全 Windows 防火墻”的左窗格中,右鍵單擊“入站規則”,然后在操作窗格中單擊“新建規則”。
在“新建入站規則向導”對話框中,在“規則類型”下,選擇“端口”,然后單擊“下一步”。
在“協議和端口”對話框中,使用默認TCP。 然后,在“特定本地端口”框中,鍵入數據庫引擎實例的端口號(即默認實例對應的端口號1433,或在終結點步驟中為專用端口選擇的端口號)。
單擊“下一步”。
在“操作”對話框中,選擇“允許連接”,然后單擊“下一步”。
安全說明:選擇“只允許安全連接”可增加安全性。 如果想在環境中配置其他安全性選項,請選擇此選項。
在“配置文件”對話框中,選擇“公用”、“專用”和“域”。 然后單擊“下一步”。
安全說明:選擇“公用”允許通過 Internet 進行訪問。 只要有可能,就請選擇更具限制性的配置文件。
在“名稱”對話框中,鍵入此規則的名稱和說明,然后單擊“完成”。
根據需要為其他組件打開附加端口。 有關詳細信息,請參閱配置 Windows 防火墻以允許 SQL Server 訪問。
將 SQL Server 配置為偵聽 TCP 協議
在連接到虛擬機時,在開始頁面中,鍵入“SQL Server 配置管理器”,然后按 ENTER。
在 SQL Server 配置管理器中,在控制臺窗格中,展開“SQL Server 網絡配置”。
在控制臺窗格中,單擊“MSSQLSERVER 的協議”(默認實例名稱)。在詳細信息窗格中,右鍵單擊“TCP”,然后單擊“啟用”(如果尚未啟用)。
在控制臺窗格中,單擊“SQL Server 服務”。 在詳細信息窗格中,右鍵單擊SQL Server (實例名)(默認實例為“SQL Server (MSSQLSERVER)”),然后單擊“重新啟動”以停止并重新啟動該 SQL Server 實例。**
關閉 SQL Server 配置管理器。
有關啟用 SQL Server 數據庫引擎的協議的詳細信息,請參閱啟用或禁用服務器網絡協議。
配置混合模式的 SQL Server 身份驗證
在沒有域環境的情況下,SQL Server 數據庫引擎無法使用 Windows 身份驗證。 若要從其他計算機連接到數據庫引擎,請將 SQL Server 的身份驗證模式配置為混合。 混合模式身份驗證同時允許 SQL Server 身份驗證和 Windows 身份驗證。
Note
如果你已使用配置的域環境配置了 Azure 虛擬網絡,可能沒有必要配置混合模式身份驗證。
在連接到虛擬機時,在開始頁面中,鍵入“SQL Server Management Studio”,然后單擊勾選圖標。
Management Studio 在首次打開時,一定會創建用戶 Management Studio 環境。 這可能需要一小段時間。
Management Studio 會顯示“連接到服務器”對話框。 在“服務器名稱”框中,鍵入要使用對象資源管理器連接到數據庫引擎的虛擬機的名稱(除了虛擬機名稱,還可以使用“(local)”或一個句點作為“服務器名稱”)。 選擇“Windows 身份驗證”,在“用戶名”框中保留“your_VM_name\your_local_administrator”。 單擊“連接”。
在 SQL Server Management Studio 的“對象資源管理器”中,右鍵單擊 SQL Server 實例的名稱(虛擬機名稱),然后單擊“屬性”。
在“安全性”頁上,在“服務器身份驗證”下,選擇“SQL Server 和 Windows 身份驗證模式”,然后單擊“確定”。
在 SQL Server Management Studio 對話框中,單擊“確定”接受重新啟動 SQL Server 的要求。
在“對象資源管理器”中,右鍵單擊你的服務器,然后單擊“重新啟動”。 (如果 SQL Server 代理正在運行,它也必須重新啟動。)
在 SQL Server Management Studio 對話框中,單擊“是”同意重新啟動 SQL Server。
創建 SQL Server 身份驗證登錄名
若要從其他計算機連接到數據庫引擎,你必須創建至少一個 SQL Server 身份驗證登錄名。
在 SQL Server Management Studio 對象資源管理器中,展開你要在其中創建新登錄名的服務器實例所在的文件夾。
右鍵單擊“安全性”文件夾,指向“新建”,然后選擇“登錄名…”。
在“登錄名 - 新建”對話框中的“常規”頁上,在“登錄名”框中輸入新用戶的名稱。
選擇“SQL Server 身份驗證”。
在“密碼”框中,輸入新用戶的密碼。 在“確認密碼”框中再次輸入該密碼。
選擇所需的密碼強制選項(“強制實施密碼策略”、“強制密碼過期”和“用戶在下次登錄時必須更改密碼”)。 如果使用此登錄名,則在下次登錄時無需更改密碼。
從“默認數據庫”列表中,為該登錄名選擇默認數據庫。 “master”是此選項的默認值。 如果尚未創建用戶數據庫,則將此設置保留為“master”。
如果這是你創建的第一個登錄名,則你可能希望將此登錄名指派為 SQL Server 管理員。 如果是這樣,請在“服務器角色”頁面上選中“sysadmin”。
Note
sysadmin 固定服務器角色的成員對數據庫引擎具有完全控制權限。 應謹慎限制此角色中的成員資格。
單擊“確定”。
有關 SQL Server 登錄名的詳細信息,請參閱創建登錄名。
確定虛擬機的 DNS 名稱
若要從另一臺計算機連接到 SQL Server 數據庫引擎,必須知道虛擬機的域名系統 (DNS) 名稱。 (這是 Internet 用于識別虛擬機的名稱。 可以使用 IP 地址,但 IP 地址在 Azure 為冗余或維護而移動資源時可能會變更。 DNS 名稱將保持不變,因為可將該名稱重定向到新的 IP 地址。)
在 Azure 門戶中(或在完成前一步后),選擇“虛擬機(經典)”。
選擇 SQL VM。
在“虛擬機”邊欄選項卡中,復制虛擬機的“DNS 名稱”。
從其他計算機連接到數據庫引擎
在連接到 Internet 的計算機上,打開 SQL Server Management Studio。
在“連接到服務器”或“連接到數據庫引擎”對話框的“服務器名稱”框中,按“DNSName,portnumber”的格式輸入虛擬機的 DNS 名稱(在前一任務中確定)和公共終結點端口號,例如“mysqlvm.chinacloudapp.cn,57500”。
如果不記得之前創建的公共終結點端口號,可以在“虛擬機”邊欄選項卡的“終結點”區域中找到。
在“身份驗證”框中,選擇“SQL Server 身份驗證”。
在“登錄名”框中,鍵入在前面的任務中創建的登錄名。
在“密碼”框中,鍵入在前面的任務中創建的登錄名的密碼。
單擊“連接”。
后續步驟
如果還打算針對高可用性和災難恢復使用 AlwaysOn 可用性組,則應考慮實施偵聽器。 數據庫客戶端將連接到偵聽器,而不是直接連接到一個 SQL Server 實例。 偵聽器將客戶端路由到可用性組中的主副本。 有關詳細信息,請參閱在 Azure 中配置 AlwaysOn 可用性組的 ILB 偵聽器。
請務必查看 Azure 虛擬機上運行的 SQL Server 的所有安全最佳實踐。 有關詳細信息,請參閱Azure 虛擬機中 SQL Server 的安全注意事項。
有關其他與在 Azure VM 中運行 SQL Server 相關的主題,請參閱SQL Server on Azure Virtual Machines(Azure 虛擬機上的 SQL Server)。
立即訪問http://market.azure.cn