共用方式為


Azure SQL Database 與 Azure Synapse Analytics 的輸出防火牆規則

適用於:Azure SQL 資料庫Azure Synapse Analytics (僅限專用的 SQL 集區)

輸出防火牆規則會將來自 Azure SQL Database 邏輯伺服器 的網路流量限制為客戶定義的 Azure 儲存體帳戶清單和 Azure SQL Database 邏輯伺服器。 任何嘗試存取不在此清單中的儲存體帳戶或資料庫都會遭到拒絕。 流量僅限於下列 Azure SQL 資料庫 功能:

來自不在此清單中的功能的輸出流量不受影響。

重要

  • 本文適用於 Azure SQL Database 和 Azure Synapse Analytics 中的專用 SQL 集區 (先前稱為 SQL DW)。 這些設定適用於所有與伺服器相關聯的 SQL Database 和專用 SQL 集區 (先前稱為 SQL DW) 資料庫。 簡單來說,「資料庫」一詞同時指稱 Azure SQL Database 和 Azure Synapse Analytics 中的資料庫。 同樣地,只要提到「伺服器」,也都是指裝載 Azure SQL Database 和 Azure Synapse Analytics 中專用 SQL 集區 (先前稱為 SQL DW) 的邏輯 SQL Server。 本文「不」適用於 Azure Synapse Analytics 工作區中的 Azure SQL 受控執行個體或專用 SQL 集區。
  • 輸出防火牆規則會在邏輯伺服器上定義。 異地複寫與容錯移轉群組需要在主要複本與所有次要複本上定義相同的規則集。

在 Azure 入口網站中設定輸出防火牆規則

  1. 在 [安全性] 底下,選取 [網路]

  2. 選取 [ 連線能力] 索引標籤 。在 [輸出網络] 底下,選取 [ 設定輸出網络限制] 的連結。

    外部網路區段的螢幕快照,以及配置外部網路限制的連結。

    這會開啟下列窗格:

    [輸出網络] 窗格的螢幕快照,其中未選取任何專案。

  3. 選取標題為 [ 限制輸出網络] 的複選框。

  4. 選取 [ 新增網域 ] 按鈕,並提供記憶體帳戶的完整域名(或 Azure SQL Database 中的資料庫)。

  5. 完成之後,您應該會看到類似下面的畫面。 選取 [確定] 以套用這些設定。

    新增完整域名之後的 [輸出網络] 窗格螢幕快照。

使用 PowerShell 設定輸出防火牆規則

重要

PowerShell Azure Resource Manager (AzureRM) 模組已於 2024 年 2 月 29 日淘汰。 所有未來的開發都應該使用 Az.Sql 模組。 建議使用者從 AzureRM 遷移至 Az PowerShell 模組,以確保持續支援和更新。 不再維護或支援 AzureRM 模組。 Az PowerShell 模組和 AzureRM 模組中命令的自變數基本上完全相同。 如需相容性的詳細資訊,請參閱 新 Az PowerShell 模組簡介

下列指令碼需要 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 殼層中的 Azure CLI

下列 CLI 指令碼說明如何在 Bash 命令介面中變更輸出網路設定 (使用 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