Share via


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

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

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

重要

  • 本文適用於 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. 瀏覽至 Azure SQL 資料庫 [防火牆和虛擬網路] 窗格中的 [輸出網路] 區段,然後選取 [設定輸出網路限制]

    Screenshot of Outbound Networking section

    此動作會在右側開啟下列窗格:

    Screenshot of Outbound Networking pane with nothing selected

  2. 選取標題為 [限制輸出網路] 的核取方塊,然後使用 [新增網域] 按鈕來新增儲存體帳戶 (或 SQL Database) 的 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 Database 仍然支援 PowerShell Azure Resource Manager 模組,但所有的未來開發都是針對 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 殼層中的 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

後續步驟