使用适用于 Visual Studio Code 的 MSSQL 扩展连接到数据库

用于 Visual Studio Code 的 MSSQL 扩展围绕你与 SQL Server、Azure SQL 以及 Microsoft Fabric 中的 SQL 数据库的连接展开。 本文介绍如何使用连接对话框创建连接,以及扩展支持的身份验证类型。 它还介绍了如何在对象资源管理器中组织保存的连接,以及如何选择扩展在打开新 SQL 文件时使用的连接。

连接后,请参阅快速入门:使用适用于 Visual Studio Code 的 MSSQL 扩展运行第一个查询,以创建数据库、添加数据并运行 Transact-SQL 语句。

连接对话框

“连接”对话框是创建或编辑连接的主要方法。 通过在对象资源管理器中选择“添加连接”或运行 MS SQL:从命令面板添加连接命令来打开它。

对话有三个主要区域:

  • 中间的 窗体区域 ,可在其中填写连接详细信息。
  • 右侧的 “已保存连接 ”和“ 最近连接” 面板,列出可以快速重新打开或编辑的连接。
  • 包含高级测试连接保存但不连接连接操作的页脚。

MSSQL 扩展的连接对话框的屏幕截图,其中显示了多个输入模式和参数,以及最近使用和保存的连接的边栏。

输入类型

在窗体顶部, 输入类型 选择器控制输入连接详细信息的方式。 使用最符合已了解的目标服务器的输入类型。

  • 参数:填写各个字段,例如服务器名称、数据库名称、身份验证类型、用户名和密码。 此输入类型是默认值,是大多数方案的最简单选项。

  • Connection String:粘贴完整的 ADO.NET 样式的连接字符串。 如果你已经获得了连接字符串(例如,来自 Azure 门户或由管理员提供),或者需要配置 参数 视图中未提供的选项,则此输入类型非常有用。

  • 浏览Azure:登录到Azure并从订阅中选择服务器和数据库。 可以按订阅和资源组进行筛选以查找所需的数据库。 此选项适用于Azure SQL 数据库和Azure SQL 托管实例(列出专用终结点和公共终结点)。 你可以收藏订阅,以便它们显示在列表顶部并自动加载。

  • 浏览Fabric:登录到Microsoft Fabric并从其中一个工作区中选择 SQL 数据库。 该对话框列出了你有权访问的工作区及其内部的 SQL 数据库。 与浏览Azure时一样,可以收藏工作区,使其显示在列表顶部并自动加载。

浏览Azure浏览Fabric都使用登录Visual Studio Code的Microsoft帐户。 可以使用任意数量的Microsoft帐户登录,并使用浏览面板顶部的下拉列表在帐户及其租户之间切换。 GitHub帐户不能用于浏览Azure和Fabric数据库。

“连接”对话框顶部的“输入类型选择器”的屏幕截图,其中显示了“参数”、“连接字符串”、“浏览 Azure”和“浏览 Fabric”。

选择数据库

使用“数据库”字段可以连接到服务器的默认数据库或特定数据库。

  • 将该字段保留为 <默认>,以连接到服务器为您的登录账户分配的默认数据库。 这是最简单的选项,你仍然可以稍后从编辑器切换数据库。

  • 从下拉列表中选择特定数据库。 填写足够的详细信息进行身份验证后,该扩展会尝试提取后台服务器上的数据库列表。 如果列表成功加载,可以从该列表中进行选择。

  • 如果无法加载数据库列表(例如,当前登录账户无权列出服务器上的数据库),您仍然可以直接在该字段中输入数据库名称。

“连接”对话框中“数据库”下拉列表的屏幕截图,其中包含已填充的数据库列表。

高级设置

选择页脚中的 “高级 ”以打开一个侧面板,其中包含完整的连接选项集,例如 Always Encrypted命令超时应用程序意向 (只读或读写)。 这些选项与在连接字符串中找到的选项相同,分为安全连接复原等类别。 使用面板顶部的搜索框快速查找特定设置。

“高级连接设置”抽屉的屏幕截图,其中包含搜索框和设置类别。

页脚中的按钮控制填写表单后会发生什么情况。

  • 连接:连接到数据库,并将连接添加到已保存的连接列表。

  • 测试连接:尝试使用当前窗体值进行连接而不保存任何内容。 使用此选项可在正式建立连接之前,先验证服务器、凭据和其他设置是否正确。

  • 保存而不连接:将连接配置文件保存到已保存的连接列表中,但不打开会话。 在提前设置连接时,或者想要重命名现有连接而不连接时,这非常有用。

使用现有连接

对话框右侧的 “已保存连接 ”和“ 最近连接” 列表使你可以轻松地从已有的连接开始。

  • 将鼠标悬停在保存的连接上以显示操作菜单。 在此处,可以 编辑 连接的详细信息、基于现有 连接创建新连接 (当多个连接共享同一服务器但不同的数据库或凭据时使用有用的快捷方式),或者从列表中删除连接。

  • 最近连接也是如此,但仅限于你最近使用过的连接,即使这些连接尚未保存。

“连接”对话框中的“已保存和最近连接”面板的屏幕截图,其中包含悬停操作菜单。

支持的身份验证类型

MSSQL 扩展支持多种身份验证类型。 选择与您的服务器配置方式相匹配的选项。

SQL 登录名

输入在SQL Server本身上定义的用户名和密码。 SQL 登录适用于SQL Server、Azure SQL 数据库和Azure SQL 托管实例。

可以选择保存密码,这样就不必每次连接时重新输入密码。

Windows 身份验证

使用当前Windows帐户登录到服务器,无需用户名或密码。 Windows 身份验证仅在连接到已配置为接受 Windows 身份验证的 SQL Server 实例时才有效,这通常是在加入域的网络中,或在与服务器相同的计算机上进行连接时。

此选项有时称为 集成身份验证。 此功能不适用于 Azure SQL 数据库、Azure SQL 托管实例 或 Fabric 中的 SQL 数据库。

Microsoft Entra ID - 通用版(含 MFA)

使用Microsoft Entra ID帐户登录。 此选项支持多重身份验证 (MFA)、条件访问策略和个人 Microsoft 帐户,这些帐户是 Microsoft Entra 租户中的来宾。

选择此选项时,对话框会提示你选择或添加Microsoft Entra ID帐户,并在该帐户有权访问多个帐户时选取租户。

该扩展使用已登录Visual Studio Code的Microsoft帐户(窗口左下角的“帐户”菜单中显示的相同帐户)。 如果尚未登录到Visual Studio Code或尚未向 MSSQL 扩展授予使用帐户的权限,则连接时系统会提示你登录。

Note

如果以前使用扩展自己的帐户系统(在 MSSQL 1.42.2 及更早版本中使用)登录到 MSSQL 扩展,则下次使用已保存连接时,系统会提示你登录到Visual Studio Code(如果尚未登录)。

如果使用Visual Studio Code帐户系统不起作用,请告知我们。 可以通过设置mssql.preview.useVscodeAccountsForEntraMFAfalse回退到以前的登录机制。

连接对话框中Microsoft Entra ID帐户选取器(包括“添加帐户”选项)的屏幕截图。

Microsoft Entra ID - 默认值

此选项使用Microsoft Entra ID默认身份验证。 Microsoft Data SQL (MDS) 驱动程序会自动从系统上安装的凭据提供程序中选择可用的Microsoft Entra ID标识。 当你具有 MSSQL 扩展不直接支持的特定身份验证要求时,此身份验证类型非常有用。

标识可以来自多个不同的源,例如登录Azure CLI会话(az login)或环境变量,并且可以通过设置User name框来指示要使用的特定标识。 有关默认身份验证如何选择标识的详细信息,请参阅Azure标识客户端库中的 DefaultAzureCredential

Microsoft Entra ID - 服务主体

以 Microsoft Entra ID 服务主体身份进行身份验证(即应用程序标识,而非用户身份)。 对于自动化方案、共享工作站或任何最好向应用程序标识(而不是人员)授予数据库访问权限的情况,请使用此选项。

选择此选项时,将重新调整“用户名和密码”字段的用途:

  • 输入服务主体 的应用程序(客户端)ID 作为用户名。
  • 输入服务主体的 客户端密码 作为密码。

有关如何将服务主体与 SQL 配合使用的详细信息,请参阅Azure标识客户端库中的服务主体

对象资源管理器中的连接

从“连接”对话框创建的每个连接(无论是立即连接还是保存而不连接)都会显示在 MSSQL 视图中的对象资源管理器中。 对象资源管理器用于浏览服务器内容、运行备份等操作,然后重新连接到之前使用的数据库。

连接组

可以将连接组织成 连接组。 组的作用类似于文件夹:可以命名它们、分配颜色,并将连接置于其中以直观方式分隔环境(例如 ,生产过渡本地)。

  • 创建组:使用 “新建连接组 ”命令,或在创建或编辑连接时分配一个新组。

  • 拖放以组织:将连接拖动到某个组上,以将其移入该组。 将一个组拖动到另一个组上以进行嵌套。 您可以创建多层嵌套组。

  • 展开和折叠:使用每个组旁边的 V 形箭头将其展开或折叠,这样您就只会看到当前正在处理的连接。 若要始终从启用 Visual Studio Code 时折叠的组开始,请启用 mssql.collapseConnectionGroupsOnStartup 设置。

显示连接组(包括嵌套组和包含连接)的对象资源管理器屏幕截图。

“连接上下文”菜单

右键单击对象资源管理器中的服务器连接以查看应用于连接本身的操作。 最常用的连接相关选项包括:

  • 连接 / 断开连接:对服务器启动或结束会话。
  • 编辑连接:打开连接对话框,其中加载了连接配置文件以编辑其参数。
  • 复制连接字符串:将已保存连接的连接字符串复制到剪贴板。 当需要与其他工具共享连接或将其粘贴到应用程序代码中时,这非常有用。 不包括密码和机密。
  • 删除连接:从保存的列表中删除连接。

服务器连接的对象资源管理器右键单击菜单的屏幕截图,其中突出显示了“复制连接字符串”。

Azure SQL的防火墙规则

从服务器防火墙不允许的客户端 IP 地址连接到Azure SQL 数据库或Azure SQL 托管实例时,可以使用 MSSQL 扩展通过“添加防火墙规则”对话框添加防火墙规则。

“添加防火墙规则”对话框中,使用有权管理服务器的Microsoft 帐户登录,为规则指定名称,并选择是只允许当前 IP 地址还是范围。 保存规则后,将自动重试连接。

“添加防火墙规则”对话框的屏幕截图,其中包含规则名称和 IP 范围的字段。

工作区连接

保存的连接和连接组存储在Visual Studio Codesettings.json中。 该扩展从两个作用域读取连接信息:

  • 用户(全局)设置:此处保存新连接。 无论打开哪个文件夹,它们都可在所有Visual Studio Code会话中使用。

  • 工作区设置:仅在工作区打开时,工作区级别保存的连接才可用。 此范围适用于特定于项目的连接,您希望通过将工作区 .code-workspace 文件签入源代码管理来与协作者共享这些连接。

要将连接从用户设置移动到工作区设置,请将该连接的 JSON 条目从用户 settings.json 复制到工作区 settings.json,然后从用户配置中删除它。

Note

该扩展不会从单个工作区文件夹设置(即多根工作区内的每文件夹 .vscode/settings.json)中读取连接。 如果希望连接应用于特定项目,请改为将其保存在工作区级别。

当您使用密码或密钥保存连接时,密码不会存储在 settings.json 中。 密码单独保存在Visual Studio Code的安全凭据存储中。

打开新 SQL 文件或编辑器时选择连接

当你打开 .sql 文件或创建新的 SQL 编辑器时,该扩展可以让编辑器保持未连接状态,或者自动连接。

此行为由 mssql.newEditorConnectionBehavior 该设置控制,该设置支持三种模式:

模式 Description
none 新的 SQL 编辑器在没有连接的情况下打开。 系统提示你在首次运行查询时选取连接,也可以使用 SQL: Connect 命令手动附加连接。
transferActive(默认值) 新的 SQL 编辑器会自动连接到当前活动的 SQL 编辑器所在的同一数据库。 当针对同一数据库处理多个文件并且不想重新连接每个文件时,这很方便。 如果当前没有 SQL 编辑器处于活动状态,则新编辑器将在没有连接的情况下打开。
defaultConnection 新的 SQL 编辑器会自动连接到你指定为默认值的特定连接。 默认连接由 mssql.defaultConnectionId 设置标识。

若要使用此模式,还需要将 mssql.defaultConnectionId 设置为已保存连接之一的 ID。 您可以在 settings.json 中查看已保存的连接,以找到该 ID。 如果未 mssql.defaultConnectionId 设置或不再匹配已保存的连接,扩展会提示下次打开新的 SQL 编辑器时选择默认连接。

可以通过搜索mssql.newEditorConnectionBehaviormssql.defaultConnectionId更改Visual Studio Code设置 UI 中的这些设置。