解析 Azure SQL 托管实例中的专用域名

适用于:Azure SQL 托管实例

本文介绍 Azure SQL 托管实例如何解析专用域名。

概述

在某些情况下,SQL Server 数据库引擎必须解析公共 DNS 记录中不存在的域名。 例如,以下场景可能涉及专用域名:

Azure SQL 托管实例部署在 Azure 虚拟网络 (VNet) 中,默认情况下使用 Azure 提供的名称解析来解析 Internet 地址。

要更改默认名称解析行为并启用专用域名解析,可以执行以下操作:

重要

将虚拟网络的 DNS 服务器从 Azure 更改为自定义服务器,或从自定义服务器更改为 Azure 时,还必须将此更改通知该虚拟网络中的 SQL 托管实例。 更新 SQL 托管实例部分对此有详细说明。

仅将 Azure 专用 DNS 区域附加到托管实例的虚拟网络或更新 Azure 专用 DNS 区域时,无需执行此操作。 这些更改会自动传播到托管实例。

注意事项

  • 请注意不要替代或禁用 Azure SQL 托管实例在内部使用的域名解析,详见网络约束部分所列。 始终配置自定义 DNS 服务器,以便它可以解析公共域名。
  • 始终对想要 Azure SQL 托管实例解析的服务(如邮件服务器或本地 SQL Server 实例)使用完全限定的域名 (FQDN)。 即使这些服务位于专用 DNS 区域中,也使用 FQDN。 例如,使用 smtp.contoso.com。 创建引用同一虚拟网络中的 SQL Server VM 的链接服务器或配置引用同一虚拟网络中的 SQL Server VM 的复制也需要 FQDN 和默认 DNS 后缀;例如 SQLVM.internal.chinacloudapp.cn

更新 SQL 托管实例

如果在具有现有 SQL 托管实例的虚拟网络中更改了 DNS 服务器设置,则托管这些实例的虚拟群集和基础计算机组需要与 DNS 配置中的更改同步。 更新虚拟群集会影响其中托管的所有 SQL 托管实例。

更新虚拟群集的 DNS 服务器设置时,虚拟网络上设置的自定义 DNS 服务器 IP 地址将成为该群集中实例的首选 DNS 服务器。 这些实例仍会将 Azure 的 DNS 解析程序地址作为备份保留,但现在会首先使用自定义 DNS 服务器解析地址。

使用 Azure 门户更新现有虚拟群集的 DNS 服务器设置。

  1. 打开 Azure 门户
  2. 打开包含要配置的子网中托管实例所在的资源组,然后选择要为其更新 DNS 服务器设置的“SQL 托管实例”
  3. 在“概述”中,选择实例所属的“虚拟群集”
  4. 选择“同步 DNS 服务器设置”以更新群集。

在虚拟群集概述页上显示“同步 DNS 服务器设置”操作的屏幕截图。

验证配置

更新虚拟群集上的 DNS 服务器设置后,可以验证它现在是否对该群集中的托管实例有效。 要完成此操作,一个方法是创建并运行一个 SQL Server 代理作业,输出当前在网络接口上配置的 DNS 服务器列表。

要查看在托管实例网络接口上配置的 DNS 服务器列表:

  1. 启动 SQL Server Management Studio
  2. 连接到你更新了 DNS 设置的群集中的托管实例。
  3. 在“对象资源管理器”中,展开“SQL Server 代理”
  4. 右键单击“作业”,然后选择“新建作业...”
  5. 在“常规”中,写入作业的名称,例如“Verify DNS settings”。
  6. 在“步骤”中,选择“新建...”
  7. 写入步骤的名称,例如“run”。
  8. 将“类型”设置为 PowerShell。
  9. 在“命令”中,粘贴以下命令:Get-DnsClientServerAddress
  10. 选择“确定”,然后选择“确定”以关闭这两个对话框窗口。
  11. 在“对象资源管理器”中,右键单击创建的作业,然后选择“启动作业步骤…”。这时作业将会开始运行。
  12. 作业完成后,再次右键单击该作业,然后选择“查看历史记录”
  13. 在“日志文件摘要”中,展开该作业并选择其下第一个,也是唯一的一个步骤。
  14. 在“所选行详细信息:”中,检查该命令的输出,并确认它是否包含 DNS 服务器 IP 地址。

权限

在虚拟网络中同步 DNS 服务器配置的用户:

  • 应是订阅参与者角色的成员,或
  • 具有拥有 Microsoft.Sql/virtualClusters/updateManagedInstanceDnsServers/action 权限的自定义角色。

后续步骤