快速入门:使用 SQL Server Management Studio (SSMS) 连接和查询 Azure 虚拟机上的 SQL Server 实例

适用范围:SQL Server

开始使用 SQL Server Management Studio (SSMS) 连接到 Azure 虚拟机上的 SQL Server 实例,并运行一些 Transact-SQL (T-SQL) 命令。

注意

虽然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名称,但为了防止中断现有环境,Azure AD 仍保留在一些硬编码的元素中,例如 UI 字段、连接提供程序、错误代码和 cmdlet。 在本文中,这两个名称可以互换。

  • 连接到 SQL Server 实例
  • 创建数据库
  • 在新数据库中创建表
  • 在新表中插入行
  • 查询新表并查看结果
  • 使用查询窗口表验证连接属性

先决条件

若要完成本文,需要 SQL Server Management Studio 以及对数据源的访问权限。

连接到 SQL 虚拟机

以下步骤演示了如何为 Azure 虚拟机创建可选的 DNS 标签,然后与 SQL Server Management Studio 进行连接。

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

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

注意

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

  1. 通过在门户中选择“虚拟机”来创建 DNS 标签。 选择要显示其属性的 SQL Server VM。

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

    公共 IP 地址的屏幕截图。

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

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

  5. 选择“保存”按钮。

    DNS 标签的屏幕截图。

连接

  1. 启动 SQL Server Management Studio。 首次运行 SSMS 时,系统将打开“连接到服务器”窗口。 如未打开,可以选择“对象资源管理器”>“连接”>“数据库引擎”,将其手动打开。

    对象资源管理器中的连接链接的屏幕截图。

  2. 此时会显示“连接到服务器”对话框。 输入以下信息:

    设置 建议的值 说明
    服务器类型 数据库引擎 对于“服务器类型”,选择“数据库引擎”(通常的默认选项)。
    服务器名称 完全限定的服务器名称 对于“服务器名称”,输入 SQL Server VM 的名称。 此外,还可使用 SQL Server VM 地址进行连接。
    身份验证 Microsoft Entra – 托管标识 使用托管标识身份验证连接到 SQL Server VM。 使用托管标识,开发人员将无需管理身份验证凭据。 仅在必要时使用 SQL Server 身份验证。

    SQL Server VM 不支持 Windows 身份验证。 有关详细信息,请参阅 Azure SQL 身份验证
    登录名 服务器帐户用户 ID 用于创建服务器的服务器帐户的用户 ID。 使用 SQL Server 身份验证时需要登录名。
    密码 服务器帐户密码 用于创建服务器的服务器帐户的密码。 使用 SQL Server 身份验证时需要密码。
    加密 1 加密方法 选择连接的加密级别。 默认值为“强制”
    信任服务器证书 信任服务器证书 选中此选项以绕过服务器证书验证。 默认值为 False(未选中),使用受信任的证书提高安全性。
    证书中的主机名 服务器的主机名 可使用此选项中提供的值在服务器证书中指定不同但预期的 CN 或 SAN。

    1 SSMS 20 中的默认值为“强制”。 Azure SQL 数据库和 Azure SQL 托管实例应使用“严格(SQL Server 2022 和 Azure SQL)”加密。 如果实例启用了“强制严格加密”,则 SQL Server 可使用“严格(SQL Server 2022 和 Azure SQL)”加密。

    SQL 虚拟机的连接对话框的屏幕截图。

  3. 完成所有字段后,选择“连接”

    也可以通过选择“选项”来修改其他连接选项。 连接选项的示例包括你要连接到的数据库、连接超时值和网络协议。 本文对所有选项使用默认值。

  4. 若要验证 Azure VM 上的 SQL Server 是否成功,请展开并浏览“对象资源管理器”中显示服务器名称、SQL Server 版本和用户名的对象。 这些对象因服务器类型而异。

    Azure SQL 虚拟机连接的屏幕截图。

解决连接问题

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

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

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

提示

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

创建数据库

按照以下步骤,创建一个名为 TutorialDB 的数据库:

  1. 在“对象资源管理器”中右键单击服务器实例,然后选择“新建查询”

    新查询链接的屏幕截图。

  2. 将以下 T-SQL 代码片段粘贴到查询窗口:

    IF NOT EXISTS (
        SELECT name
        FROM sys.databases
        WHERE name = N'TutorialDB'
    )
    CREATE DATABASE [TutorialDB];
    GO
    
    ALTER DATABASE [TutorialDB] SET QUERY_STORE = ON;
    GO
    
  3. 通过选择“执行”或选择键盘上的 F5 来执行查询。

    “执行”命令的屏幕截图。

    查询完成后,新的 TutorialDB 数据库会显示在“对象资源管理器”内的数据库列表中。 如未显示,请右键单击“数据库”节点,然后选择“刷新”

在新数据库中创建表

在本节中,你将在新创建的 TutorialDB 数据库中创建一个表。 由于查询编辑器仍处于 master 数据库的上下文中,因此请按以下步骤操作,将连接上下文切换到 TutorialDB 数据库:

  1. 在数据库下拉列表中,选择所需数据库,如下所示:

    更改数据库的屏幕截图。

  2. 将以下 T-SQL 代码片段粘贴到查询窗口:

    USE [TutorialDB]
    GO
    
    -- Create a new table called 'Customers' in schema 'dbo'
    -- Drop the table if it already exists
    IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
        DROP TABLE dbo.Customers
    GO
    
    -- Create the table in the specified schema
    CREATE TABLE dbo.Customers (
        CustomerId INT NOT NULL PRIMARY KEY, -- primary key column
        Name NVARCHAR(50) NOT NULL,
        Location NVARCHAR(50) NOT NULL,
        Email NVARCHAR(50) NOT NULL
    );
    GO
    
  3. 通过选择“执行”或选择键盘上的 F5 来执行查询。

查询完成后,新的“客户”表会显示在对象资源管理器内的表列表中。 如果该表未显示,请右键单击“对象资源管理器”中的“TutorialDB”>“表”节点,然后选择“刷新”

新名的屏幕截图。

将行插入新表

现在,让我们将一些行插入前面创建的 Customers 表。 将以下 T-SQL 代码片段粘贴到查询窗口并选择“执行”

-- Insert rows into table 'Customers'
INSERT INTO dbo.Customers (
    CustomerId,
    Name,
    Location,
    Email
)
VALUES
    (1, N'Orlando', N'Australia', N''),
    (2, N'Keith', N'India', N'keith0@adventure-works.com'),
    (3, N'Donna', N'Germany', N'donna0@adventure-works.com'),
    (4, N'Janet', N'United States', N'janet1@adventure-works.com')
GO

查询表并查看结果

查询结果在查询文本窗口下可见。 要查询 Customers 表并查看插入的行,请按照以下步骤进行操作:

  1. 将以下 T-SQL 代码片段粘贴到查询窗口并选择“执行”

    -- Select rows from table 'Customers'
    SELECT * FROM dbo.Customers;
    

    查询结果显示在文本输入区域下。

    结果列表的屏幕截图。

    你还可以通过选择以下选项之一来修改结果的显示方式:

    用于显示查询结果的三个选项的屏幕截图。

    • 第一个按钮将在“文本视图”中显示结果,如下一部分中的图像所示
    • 中间的按钮采用“网格视图”显示结果,这是默认选项
    • 第三个按钮可将结果保存为默认扩展名是 .rpt 的文件。

使用查询窗口表验证连接属性

在查询结果下,可以找到有关连接属性的信息。 在运行前一步骤中的上述查询后,查看查询窗口底部的连接属性。

  • 可以确定连接到的服务器和数据库,以及你的用户名。

  • 此外,还可以查看查询持续时间和之前执行的查询所返回的行数。

    连接属性的屏幕截图。

其他工具

也可以使用 Azure Data Studio 连接和查询 SQL ServerAzure SQL 数据库Azure Synapse Analytics