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

Azure SQL 数据库和 Azure Synapse Analytics 的出站防火墙规则

适用于:Azure SQL 数据库Azure Synapse Analytics(仅限专用 SQL 池)

出站防火墙规则可将来自 Azure SQL 逻辑服务器的网络流量限制为客户定义的 Azure 存储帐户和 Azure SQL 逻辑服务器的列表。 任何尝试访问不在此列表中的存储帐户或数据库的行为都将被拒绝。 以下 Azure SQL 数据库功能支持此功能:

重要

  • 本文适用于 Azure SQL 数据库和 Azure Synapse Analytics 中的专用 SQL 池(以前称为 SQL DW)。 这些设置适用于所有与服务器关联的 SQL 数据库和专用 SQL 池(以前的 SQL DW)数据库。 为简单起见,术语“数据库”是指 Azure SQL 数据库中的数据库和 Azure Synapse Analytic 中的数据库。 同样,无论何时提及“服务器”,都是指托管 Azure SQL 数据库和 Azure Synapse Analytics 中专用 SQL 池(以前称为 SQL DW)的逻辑 SQL 服务器。 本文适用于 Azure SQL 托管实例或 Azure Synapse Analytics 工作区中的专用 SQL 池。
  • 出站防火墙规则在逻辑服务器上定义。 异地复制和故障转移组需要在主节点和所有辅助节点上定义相同的规则集。

在 Azure 门户中设置出站防火墙规则

  1. 浏览到 Azure SQL 数据库的防火墙和虚拟网络窗格中的出站网络部分,选择配置出站网络限制

    Screenshot of Outbound Networking section

    此时会在右侧打开以下窗格:

    Screenshot of Outbound Networking pane with nothing selected

  2. 选中标题为限制出站网络的复选框,然后使用添加域按钮添加存储帐户(或 SQL 数据库)的 FQDN。

    Screenshot of Outbound Networking pane showing how to add FQDN

  3. 完成后,应该会显示如下所示的屏幕。 选择确定以应用这些设置。

    Screenshot of of Outbound Networking pane after FQDNs are added

使用 PowerShell 设置出站防火墙规则

重要

Azure SQL 数据库仍然支持 PowerShell Azure 资源管理器模块,但所有未来开发都针对 Az.Sql 模块。 若要了解这些 cmdlet,请参阅 AzureRM.Sql。 Az 模块和 AzureRm 模块中的命令参数大体上是相同的。 以下脚本需要 Azure PowerShell 模块

下面的 PowerShell 脚本演示如何更改出站网络设置(使用 RestrictOutboundNetworkAccess 属性):

# Get current settings for Outbound Networking
(Get-AzSqlServer -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName>).RestrictOutboundNetworkAccess

# Update setting for Outbound Networking
$SecureString = ConvertTo-SecureString "<ServerAdminPassword>" -AsPlainText -Force

Set-AzSqlServer -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName> -SqlAdministratorPassword $SecureString  -RestrictOutboundNetworkAccess "Enabled"

使用这些 PowerShell cmdlet 配置出站防火墙规则

# List all Outbound Firewall Rules
Get-AzSqlServerOutboundFirewallRule -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName>

# Add an Outbound Firewall Rule
New-AzSqlServerOutboundFirewallRule -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName> -AllowedFQDN testOBFR1

# List a specific Outbound Firewall Rule
Get-AzSqlServerOutboundFirewallRule -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName> -AllowedFQDN <StorageAccountFQDN>

#Delete an Outbound Firewall Rule
Remove-AzSqlServerOutboundFirewallRule -ServerName <SqlServerName> -ResourceGroupName <ResourceGroupName> -AllowedFQDN <StorageAccountFQDN>

使用 Azure CLI 设置出站防火墙规则

重要

本部分中的所有脚本都需要 Azure CLI

Bash shell 中的 Azure CLI

下面的 CLI 脚本演示如何在 bash shell 中更改出站网络设置(使用 restrictOutboundNetworkAccess 属性):

# Get current setting for Outbound Networking 
az sql server show -n sql-server-name -g sql-server-group --query "restrictOutboundNetworkAccess"

# Update setting for Outbound Networking
az sql server update -n sql-server-name -g sql-server-group --set restrictOutboundNetworkAccess="Enabled"

使用这些 CLI 命令配置出站防火墙规则

# List a server's outbound firewall rules.
az sql server outbound-firewall-rule list -g sql-server-group -s sql-server-name

# Create a new outbound firewall rule
az sql server outbound-firewall-rule create -g sql-server-group -s sql-server-name --outbound-rule-fqdn allowedFQDN

# Show the details for an outbound firewall rule.
az sql server outbound-firewall-rule show -g sql-server-group -s sql-server-name --outbound-rule-fqdn allowedFQDN

# Delete the outbound firewall rule.
az sql server outbound-firewall-rule delete -g sql-server-group -s sql-server-name --outbound-rule-fqdn allowedFQDN

后续步骤