Azure SQL Database 和 Azure Synapse Analytics 的網路存取控制
適用於:Azure SQL 資料庫 Azure Synapse Analytics (僅限專用的 SQL 集區)
當透過 Azure 入口網站為 Azure SQL Database 和 Azure Synapse Analytics 建立邏輯伺服器時,結果會出現公用端點,格式為 yourservername.database.windows.net。
您可以使用下列網路存取控制,選擇性地允許透過公用端點存取資料庫:
基於 IP 位址的防火牆規則:使用此功能可明確允許來自特定 IP 位址的連線。 例如,從內部部署機器或IP位址範圍指定開始和結束IP位址。
允許 Azure 服務和資源存取伺服器:啟用時,Azure 界限內的其他資源即可存取 SQL Database 例如,Azure 虛擬機器可以存取 SQL Database 資源。
您也可以透過下列方式,允許從虛擬網路進行資料庫的私人存取:
虛擬網路防火牆規則:使用此功能可允許來自 Azure 界限內特定虛擬網路的流量。
私人連結:使用此功能可為特定虛擬網路內的 Azure 中的邏輯伺服器建立私人端點。
重要
本文「不」適用於 SQL 受控執行個體。 如需網路設定的詳細資訊,請參閱連線到 Azure SQL 受控執行個體。
IP 防火牆規則
IP 型防火牆是 Azure 中邏輯伺服器的一項功能,可在您明確新增用戶端電腦的 IP 位址之前,防止對伺服器的所有存取。
允許 Azure 服務
根據預設,從 Azure 入口網站建立新的邏輯伺服器時,沒有勾選且沒有啟動 [允許 Azure 服務和資源存取此伺服器]。 當允許使用公用端點連線時,就會出現此設定。
您也可以在按照如下方式建立邏輯伺服器之後,透過網路設定變更這項設定:
當啟用 [允許 Azure 服務及資源存取此伺服器] 時,您的伺服器即可從 Azure 界限內的所有資源進行通訊,這些資源可以是,也可以不是您訂用帳戶的一部分。 在許多情況下,啟用設定對大多數客戶來說都過於寬鬆。 您可能想要取消選取此設定,並將其取代為限制更嚴格的IP防火牆規則,或使用其中一個選項進行私人存取。
重要
選取 [允許 Azure 服務和資源存取此伺服器] 會新增 IP 型防火牆規則,開頭和結束 IP 位址為 0.0.0.0
不過,這麼做會影響下列功能,因為這些功能是在 Azure 中的虛擬機器上執行,而該虛擬機器不屬於您的虛擬網路,因此必須透過 Azure IP 位址連接到資料庫:
匯入匯出服務
未啟用 [允許 Azure 服務和資源存取此伺服器] 時,匯入匯出服務無法運作。 不過,您可以從 Azure VM 手動執行 SqlPackage,或使用 DACFx API 直接在程式碼中執行匯出,以解決此問題。
資料同步
若要在 [允許 Azure 服務和資源存取此伺服器] 未開啟的情況下使用資料同步功能,您需要建立個別的防火牆規則項目,以透過 SQL 服務標籤,為裝載中樞資料庫的區域新增 IP 位址。 將這些伺服器層級防火牆規則新增至裝載中樞和成員資料庫的伺服器 (這些伺服器可能位於不同區域)。
使用下列 PowerShell 指令碼,產生對應到美國西部區域 SQL 服務標籤的 IP 位址。
PS C:\> $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\> $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27
提示
就算指定了 Location 參數,Get-AzNetworkServiceTag 仍會傳回 SQL 服務標籤的全域範圍。 請務必將範圍篩選為裝載同步群組所用中樞資料庫的區域
PowerShell 指令碼的輸出是採無類別網域間路由 (CIDR) 標記法。 您必須使用 Get-IPrangeStartEnd.ps1 將其轉換成開始和結束 IP 位址的格式,類似如下:
PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start end
----- ---
52.229.17.64 52.229.17.127
您可以使用這個額外的 PowerShell 指令碼,將所有 IP 位址從 CIDR 轉換成開始和結束 IP 位址格式。
PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start end
----- ---
13.86.216.0 13.86.216.127
13.86.216.128 13.86.216.191
13.86.216.192 13.86.216.223
您現在可以將這些規則新增為不同的防火牆規則,然後停用 [ 允許 Azure 服務和資源存取此伺服器] 設定。
Sql 服務標籤
服務標籤可用於安全性規則,以及從用戶端路由至 SQL Database。 服務標籤可在網路安全組、Azure 防火牆和使用者定義的路由中使用,方法是在安全性規則的來源或目的地欄位中指定服務標籤。 Sql 服務標籤是由 SQL Database 使用的所有 IP 位址所組成。 標記會依區域進一步區隔。 例如,Sql.WestUS 會列出美國西部 SQL Database 所使用的所有 IP 位址。
Sql 服務標籤是由建立連線性至閘道 IP 位址中所述之 SQL Database 所需的 IP 位址所組成。 此外,服務標籤也會與功能中使用的來自 SQL Database 的任何輸出流量產生關聯,例如:
SqlManagement 服務標籤
SqlManagement 服務標籤用於針對 SQL Database 的控制平面作業。
虛擬網路防火牆規則
虛擬網路防火牆規則更簡單的替代方法,可讓您建立來自特定子網路 (包含 VM) 的存取,並加以管理。
Private Link
Private Link 可讓您透過私人端點連線到伺服器。 私人端點為特定虛擬網路和子網路內的私人 IP 位址。
相關內容
如需建立伺服器層級 IP 防火牆規則的快速入門,請參閱在 SQL Database 中建立資料庫。
如需建立伺服器層級虛擬網路防火牆規則的快速入門,請參閱對 Azure SQL Database 使用虛擬網路服務端點和規則。
如需透過開放原始碼或協力廠商應用程式連線到 SQL Database 中資料庫的說明,請參閱 SQL Database 的用戶端快速入門程式碼範例。
如需詳細資訊,請參閱針對 ADO.NET 4.5 及 SQL Database 的 1433 以外的連接埠的〈SQL Database:外部與內部〉一節
如需 Azure SQL Database 連線的概觀,請參閱 Azure SQL 連線架構
如需 Azure SQL Database 安全性的概觀,請參閱保護您的資料庫