你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

适用于: Azure SQL 托管实例

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

概述

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

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

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

注意事项

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

更新 SQL 托管实例

如果在已托管 SQL 托管实例的虚拟网络中更改了 DNS 服务器设置,则其虚拟群集需要与 DNS 配置中的更改同步。 可以通过 Azure PowerShell 或 Azure CLI 来实现此目的。

注意

更新单个虚拟群集会影响其中托管的所有 SQL 托管实例。

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

首先,获取已更改 DNS 设置的虚拟网络,然后使用 Azure PowerShell 命令 Invoke-AzResourceAction 同步子网中所有虚拟群集的 DNS 服务器配置:

$ResourceGroup = 'enter resource group of virtual network'
$VirtualNetworkName = 'enter virtual network name'
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroup $ResourceGroup -Name $VirtualNetworkName

Get-AzSqlVirtualCluster `
    | where SubnetId -match $virtualNetwork.Id `
    | select Id `
    | Invoke-AzResourceAction -Action updateManagedInstanceDnsServers -Force

权限

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

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

后续步骤