连接到 Azure 上的 SQL Server 虚拟机

适用于:Azure 上的 SQL Server

概述

本文介绍如何连接到 Azure 虚拟机 (VM) 上的 SQL。 它涵盖了一些常规连接方案。 如果需要在门户外排除连接故障或配置连接,请参阅主题末尾部分的手动配置

如需观看预配和连接的完整演练,请参阅在 Azure 上预配 SQL Server 虚拟机

连接方案

客户端连接到 SQL Server VM 的方式取决于客户端的位置和网络配置。

如果在 Azure 门户中预配 SQL Server VM,则可以选择指定“SQL 连接”的类型。

Screenshot showing the public SQL connectivity option during provisioning.

用于连接的选项包括:

选项 说明
公共 通过 Internet 连接到 SQL Server。
专用 连接到同一虚拟网络中的 SQL Server。
本地 在同一虚拟机上本地连接到 SQL Server。

以下各节详细说明了“公共”和“专用”选项。

通过 Internet 连接到 SQL Server

如果要通过 Internet 连接到 SQL Server 数据库引擎,请在预配过程中,在门户中为“SQL 连接”类型选择“公共”。 门户自动执行以下步骤:

  • 为 SQL Server 启用 TCP/IP 协议。
  • 配置防火墙规则以打开 SQL Server TCP 端口(默认值为 1433)。
  • 启用公共访问所需的 SQL Server 身份验证。
  • 在 VM 上将网络安全组配置为 SQL Server 端口上的所有 TCP 流量。

重要

SQL Server Developer Edition 和 Express Edition 的虚拟机映像不会自动启用 TCP/IP 协议。 对于 Developer Edition 和 Express Edition,在创建 VM 后,必须使用 SQL Server 配置管理器手动启用 TCP/IP 协议

任何可以访问 Internet 的客户端都可以连接到 SQL Server 实例,只需指定虚拟机的公共 IP 地址或分配到该 IP 地址的任何 DNS 标签即可。 如果 SQL Server 端口为 1433,则不需在连接字符串中进行指定。 以下连接字符串使用 SQL 身份验证(还可以使用公共 IP 地址)连接到具有 DNS 标签 sqlvmlabel.chinaeast.cloudapp.chinacloudapi.cn 的 SQL VM。

Server=sqlvmlabel.chinaeast.cloudapp.chinacloudapi.cn;Integrated Security=false;User ID=<login_name>;Password=<your_password>

尽管此字符串使客户端可通过 Internet 进行连接,但这并不意味着任何人都可以连接到 SQL Server 实例。 外部客户端必须使用正确的用户名和密码。 但是,为了提高安全性,可以不使用 1433 这个众所周知的端口。 例如,如果将 SQL Server 配置为在端口 1500 上进行侦听并建立了正确的防火墙和网络安全组规则,即可通过将端口号附加到服务器名称来进行连接。 下面的示例通过将自定义端口号 1500 添加到服务器名称,对前一个端口号进行了更改:

Server=sqlvmlabel.chinaeast.cloudapp.chinacloudapi.cn,1500;Integrated Security=false;User ID=<login_name>;Password=<your_password>"

注意

在 VM 上通过 Internet 查询 SQL Server 时,Azure 数据中心的所有传出数据都将服从常规出站数据传输的定价

在虚拟网络中连接到 SQL Server

在门户中为“SQL 连接”类型选择“专用”时,Azure 会将大多数设置配置为相同的“公共”。 其中一个区别在于,不存在允许 SQL Server 端口(默认值为 1433)上的外部流量的网络安全组规则。

重要

SQL Server Developer Edition 和 Express Edition 的虚拟机映像不会自动启用 TCP/IP 协议。 对于 Developer Edition 和 Express Edition,在创建 VM 后,必须使用 SQL Server 配置管理器手动启用 TCP/IP 协议

专用连接通常与虚拟网络结合使用,从而支持多个方案。 可以连接同一虚拟网络中的 VM,即使这些 VM 位于不同的资源组中。 使用站点到站点 VPN,可以创建连接 VM 与本地网络和计算机的混合体系结构。

虚拟网络还允许将 Azure VM 加入域。 这是对 SQL Server 使用 Windows 身份验证的唯一方式。 其他连接方案需要使用用户名和密码进行 SQL 身份验证。

假设已在虚拟网络中配置 DNS,则可在连接字符串中指定 SQL Server VM 计算机名来连接 SQL Server 实例。 以下示例还假定已配置 Windows 身份验证,并且用户已获得访问 SQL Server 实例的权限。

Server=mysqlvm;Integrated Security=true

为 Developer Edition 和 Express Edition 启用 TCP/IP

更改 SQL Server 连接性设置时,Azure 不会为 SQL Server Developer Edition 和 Express Edition 自动启用 TCP/IP 协议。 以下步骤说明了如何手动启用 TCP/IP,以便通过 IP 地址进行远程连接。

首先,通过远程桌面连接到 SQL Server 虚拟机。

  1. 创建并运行 Azure 虚拟机后,选择“虚拟机”,然后选择新的 VM。

  2. 选择“连接”,然后从下拉列表中选择“RDP”以下载 RDP 文件。

    Connect to VM in portal

  3. 打开浏览器为 VM 下载的 RDP 文件。

  4. “远程桌面连接”会通知你,无法识别此远程连接的发布者。 单击“ 连接 ”以继续。

  5. 在“Windows 安全性”对话框中,单击“使用其他帐户”。 可能需要单击“更多选项”才能看到此内容。 指定在创建 VM 时配置的用户名和密码。 必须在用户名之前添加反斜杠。

    Remote desktop authentication

  6. 单击“确定”进行连接。

接下来,通过“SQL Server 配置管理器”启用 TCP/IP 协议。

  1. 使用远程桌面连接到虚拟机以后,搜索“配置管理器”:

    Open SSCM

  2. 在 SQL Server 配置管理器的控制台窗格中,展开“SQL Server 网络配置”。

  3. 在控制台窗格中,单击“MSSQLSERVER 的协议”(默认实例名称)。在详细信息窗格中,右键单击“TCP”,并单击“启用”(如果尚未启用)。

    Enable TCP

  4. 在控制台窗格中,单击“SQL Server 服务”。 在详细信息窗格中,右键单击“SQL Server (实例名)”(默认实例为 SQL Server (MSSQLSERVER)),然后单击“重启”以停止并重启该 SQL Server 实例。

    Restart Database Engine

  5. 关闭 SQL Server 配置管理器。

有关启用 SQL Server 数据库引擎的协议的详细信息,请参阅启用或禁用服务器网络协议

与 SSMS 连接

以下步骤演示如何为 Azure VM 创建可选 DNS 标签,然后与 SQL Server Management Studio (SSMS) 进行连接。

配置用于公共 IP 地址的 DNS 标签

若要从 Internet 连接到 SQL Server 数据库引擎,请考虑创建用于公共 IP 地址的 DNS 标签。 可以通过 IP 地址进行连接,但 DNS 标签可以创建更容易标识的 A 记录,并可抽象基础性公共 IP 地址。

注意

如果打算只连接到同一虚拟网络中的 SQL Server 实例,或者只进行本地连接,则 DNS 标签不是必需的。

若要创建 DNS 标签,请首先在门户中选择“虚拟机” 。 选择要显示其属性的 SQL Server VM。

  1. 在虚拟机概览中,选择“公共 IP 地址”

    public ip address

  2. 在公共 IP 地址的属性中,展开“配置”

  3. 输入 DNS 标签名称。 此名称是一种可通过名称而非 IP 地址直接连接到 SQL Server VM 的 A 记录。

  4. 选择“保存”按钮。

    dns label

从其他计算机连接到数据库引擎

  1. 在连接到 Internet 的计算机上,打开 SQL Server Management Studio (SSMS)。 如果没有 SQL Server Management Studio,可以从此处下载。

  2. 在“连接到服务器”或“连接到数据库引擎”对话框中,编辑“服务器名称”值 。 输入虚拟机的 IP 地址或完整 DNS 名称(已在上一个任务中确定)。 也可添加逗号并提供 SQL Server 的 TCP 端口。 例如,tutorial-sqlvm1.chinaeast.cloudapp.chinacloudapi.cn,1433

  3. 在“身份验证”框中,选择“SQL Server 身份验证” 。

  4. 在“登录” 框中,键入有效 SQL 登录的名称。

  5. 在“密码” 框中,键入登录的密码。

  6. 选择“连接” 。

    ssms connect

手动配置和故障排除

尽管门户提供自动配置连接的选项,但了解如何手动配置连接也非常重要。 了解相关要求也有助于进行故障排除。

下表列出了连接到 Azure VM 上的 SQL Server 的要求。

要求 说明
启用 SQL Server 身份验证模式 除非已在虚拟网络上配置 Active Directory,否则需要进行 SQL Server 身份验证才能连接到远程 VM。
创建 SQL 登录名 如果使用的是 SQL 身份验证,则需要提供带有用户名和密码的 SQL 登录名,并且该登录名还有权访问目标数据库。
启用 TCP/IP 协议 SQL Server 必须允许通过 TCP 连接。
启用 SQL Server 端口的防火墙规则 VM 上的防火墙必须允许 SQL Server 端口(默认为 1433)上的入站流量。
创建 TCP 1433 的网络安全组规则 如果希望通过 Internet 连接,必须允许 VM 接收 SQL Server 端口(默认为 1433)上的流量。 本地和仅虚拟网路连接对此无要求。 这是在 Azure 门户中所要求的唯一步骤。

提示

在门户中配置连接时,已为你完成上表中的步骤。 只需使用这些步骤来确认配置或手动为 SQL Server 设置连接。

后续步骤

若要查看预配说明以及这些连接步骤,请参阅在 Azure 上预配 SQL Server 虚拟机

有关其他与在 Azure VM 上运行 SQL Server 相关的主题,请参阅 Azure 虚拟机上的 SQL Server