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

使用 SQL FQDN 配置 Azure 防火墙应用程序规则

可以使用 SQL FQDN 配置 Azure 防火墙应用程序规则。 此配置仅将虚拟网络的访问限制为指定的 SQL Server 实例。

通过使用 SQL FQDN,可以筛选流量:

  • 从虚拟网络到 Azure SQL 数据库或 Azure Synapse Analytics。 例如:仅允许访问 sql-server1.database.windows.NET
  • 从内部部署到 Azure SQL 托管实例或在您的虚拟网络中运行的 SQL IaaS。
  • 从“分支到分支”到虚拟网络中运行的 Azure SQL 托管实例或 SQL IaaS。

仅在代理模式下支持 SQL FQDN 筛选(端口 1433)。 如果在默认重定向模式下使用 SQL,则可以使用 SQL 服务标记作为 网络规则的一部分来筛选访问权限。 如果对 SQL IaaS 通信使用非默认端口,则可以在防火墙应用程序规则中配置这些端口。

使用 Azure CLI 进行配置

  1. 使用 Azure CLI 部署 Azure 防火墙

  2. ** 在筛选到 Azure SQL 数据库、Azure Synapse Analytics 或 SQL 托管实例的流量时,请将 SQL 连接模式设置为 代理。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注意

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果想要继续使用重定向模式,这是 Azure 中连接客户端的默认模式,则可以在防火墙网络规则中使用 SQL 服务标记筛选访问。

  3. 使用 SQL FQDN 允许访问 SQL Server 的应用程序规则创建新的规则集合:

     az extension add -n azure-firewall
    
     az network firewall application-rule create \
         --resource-group Test-FW-RG \
         --firewall-name Test-FW01 \
         --collection-name sqlRuleCollection \
         --priority 1000 \
         --action Allow \
         --name sqlRule \
         --protocols mssql=1433 \
         --source-addresses 10.0.0.0/24 \
         --target-fqdns sql-serv1.database.windows.net
    

使用 Azure PowerShell 进行配置

  1. 使用 Azure PowerShell 部署 Azure 防火墙

  2. 如果需要对 Azure SQL 数据库、Azure Synapse Analytics 或 SQL 托管实例的流量进行筛选,请将 SQL 连接模式更改为 代理。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注意

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果想要继续使用重定向模式,这是 Azure 中连接客户端的默认模式,则可以在防火墙网络规则中使用 SQL 服务标记筛选访问。

  3. 使用 SQL FQDN 允许访问 SQL Server 的应用程序规则创建新的规则集合:

    $AzFw = Get-AzFirewall -Name "Test-FW01" -ResourceGroupName "Test-FW-RG"
    
    $sqlRule = @{
       Name          = "sqlRule"
       Protocol      = "mssql:1433"
       TargetFqdn    = "sql-serv1.database.windows.net"
       SourceAddress = "10.0.0.0/24"
    }
    
    $rule = New-AzFirewallApplicationRule @sqlRule
    
    $sqlRuleCollection = @{
       Name       = "sqlRuleCollection"
       Priority   = 1000
       Rule       = $rule
       ActionType = "Allow"
    }
    
    $ruleCollection = New-AzFirewallApplicationRuleCollection @sqlRuleCollection
    
    $Azfw.ApplicationRuleCollections.Add($ruleCollection)
    Set-AzFirewall -AzureFirewall $AzFw
    

使用 Azure 门户进行配置

  1. 使用 Azure 门户部署 Azure 防火墙

  2. 如果您对 Azure SQL 数据库、Azure Synapse Analytics 或 SQL 托管实例进行流量筛选,请将 SQL 连接模式设置为 代理。 若要了解如何切换 SQL 连接模式,请参阅 Azure SQL 连接设置

    注意

    与重定向相比,SQL 代理模式可能会导致更大的延迟。 如果想要继续使用重定向模式,这是 Azure 中连接客户端的默认模式,则可以在防火墙网络规则中使用 SQL 服务标记筛选访问。

  3. 使用相应的协议、端口和 SQL FQDN 添加应用程序规则,然后选择“ 保存”。

  4. 从虚拟网络中的虚拟机访问 SQL,该虚拟机通过防火墙筛选流量。

  5. 验证 Azure 防火墙日志是否显示允许流量。

后续步骤

要了解 SQL 代理和重定向模式,请参阅 Azure SQL 数据库连接体系结构