Tip
Microsoft Fabric Data Warehouse 是一個企業規模的關聯式倉庫,建立在資料湖基礎上,具備未來準備架構、內建 AI 及新功能。 如果你是資料倉儲新手,建議先從Fabric Data Warehouse開始。 現有的 專用 SQL 工作負載可升級至 Fabric,以取得資料科學、即時分析與報告等多項新功能。
例如,當你在Azure Synapse Analytics建立一台名為 mysqlserver 的新邏輯伺服器時,伺服器層級防火牆會阻擋所有對 logical server 公共端點的存取。 Azure Synapse 支援伺服器層級的 IP 防火牆規則。 Azure Synapse Analytics 工作空間中的專用 SQL 池不使用邏輯 SQL 伺服器,且設有工作區層級防火牆。
- 關於Azure SQL Database中伺服器與資料庫 IP 防火牆規則的資訊,請參見 Azure SQL Database IP 防火牆規則
- 關於Azure SQL 受控執行個體網路設定的資訊,請參見 Connect 您的應用程式至 Azure SQL 受控執行個體。
防火牆的運作方式
來自網際網路和 Azure 的連線嘗試必須先通過防火牆,才能到達你的伺服器或資料庫
伺服器層級 IP 防火牆規則
這些規則可讓用戶端存取整部伺服器,也就是受伺服器管理的所有資料庫。 規則會儲存在 master 資料庫中。 伺服器層級 IP 防火牆規則的最大數量限制為每個伺服器 256 個。 如果你啟用了允許Azure服務與資源存取此伺服器設定,這會被視為伺服器的單一防火牆規則。
你可以透過 Azure 入口網站、PowerShell 或 Transact-SQL 語句來設定伺服器層級的 IP 防火牆規則。
Note
在使用 Azure 入口網站設定時,伺服器層級 IP 防火牆規則的最大數量限制為 256 條。
- 若要使用入口網站或 PowerShell,您必須是訂閱擁有者或訂閱參與者。
- 要使用 Transact-SQL,您必須以伺服器層級主體登入或以 Microsoft Entra 管理員身份連接
master資料庫。 (伺服器層級的 IP 防火牆規則必須先由擁有 Azure 層級權限的使用者建立。)
Note
預設情況下,從Azure入口建立新的邏輯 SQL 伺服器時,允許 Azure 服務與資源存取此伺服器設定為 No。
如何設定防火牆規則的建議
當你有多個資料庫且存取需求相同,且不想分別設定時,建議使用伺服器層級的 IP 防火牆規則。
來自網際網路的連線
當電腦嘗試從網際網路連接你的伺服器時,防火牆會先檢查請求的原始 IP 位址。
- 如果位址是在伺服器層級 IP 防火牆規則的範圍內,則會授與連線。
- 伺服器層級 IP 防火牆規則適用於伺服器管理的所有資料庫。
- 如果該位址不在伺服器層級 IP 防火牆規則範圍內,連線請求就會失敗。
權限
要建立和管理 IP 防火牆規則,你需要具備以下其中一個角色:
- 為 SQL Server 參與者角色
- 為 SQL 安全性管理員角色
- 資源的擁有者
建立和管理 IP 防火牆規則
你可以用
Tip
你可以使用 Auditing for Azure Synapse Analytics 來審核伺服器層級和資料庫層級的防火牆變更。
使用 Azure 入口網站來管理伺服器層級的 IP 防火牆規則
要在Azure入口網站設定伺服器層級的 IP 防火牆規則,請前往你邏輯伺服器的 Overview 頁面。
前往 網路 頁面。
在 防火牆規則 區新增規則,輸入你使用的電腦的 IP 位址,然後選擇 儲存。 系統便會為目前的 IP 位址建立伺服器層級 IP 防火牆規則。
使用 Transact-SQL 來管理 IP 防火牆規則
| 目錄檢視或預存程序 | Level | Description |
|---|---|---|
| sp_set_firewall_rule | Server | 建立或更新伺服器層級 IP 防火牆規則 |
| sp_delete_firewall_rule | Server | 移除伺服器層級 IP 防火牆規則 |
新增伺服器層級的 IP 防火牆規則。
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
要刪除伺服器層級的 IP 防火牆規則,請執行 sp_delete_firewall_rule 儲存程序。 以下範例刪除了該規則 ContosoFirewallRule:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
使用 PowerShell 來管理伺服器層級 IP 防火牆規則
Note
本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
Important
PowerShell Azure Resource Manager(AzureRM)模組於 2024 年 2 月 29 日被棄用。 所有未來的開發都應該使用 Az.Sql 模組。 建議使用者從 AzureRM 遷移到 Az PowerShell 模組,以確保獲得持續的支援和更新。 不再維護或支援 AzureRM 模組。 Az PowerShell 模組和 AzureRM 模組中命令的自變數基本上完全相同。 如需其相容性的詳細資訊,請參閱 新的 Az PowerShell 模組簡介。
| Cmdlet | Level | Description |
|---|---|---|
| Get-AzSynapseFirewallRule | Server | 傳回 Synapse Analytics 防火牆規則。 |
| New-AzSynapseFirewallRule | Server | 建立 Synapse Analytics 防火牆規則。 |
| Remove-AzSynapseFirewallRule | Server | 移除 Synapse Analytics 的防火牆規則。 |
| Update-AzSynapseFirewallRule | Server | 更新 Synapse Analytics 防火牆規則。 |
使用 CLI 來管理伺服器層級 IP 防火牆規則
| Cmdlet | Level | Description |
|---|---|---|
| az synapse sql | 管理 SQL 集區。 | |
| az synapse workspace firewall-rule | 管理工作區的防火牆規則。 |
關於工作區層級防火牆規則,請參見:
| Cmdlet | Level | Description |
|---|---|---|
| az synapse workspace firewall-rule create | Server | 建立防火牆規則 |
| az synapse workspace firewall-rule delete | Server | 刪除防火牆規則 |
| az synapse workspace firewall-rule list(列出 Synapse 工作區的防火牆規則) | Server | 列出所有防火牆規則 |
| az synapse workspace firewall-rule show | Server | 取得防火牆規則 |
| az synapse workspace firewall-rule update | Server | 更新防火牆規則 |
| az synapse workspace firewall-rule wait | Server | 將 CLI 置於等候狀態,直到符合防火牆規則的條件 |
以下範例使用 CLI 在 Azure Synapse 中設定伺服器層級的 IP 防火牆規則:
az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
使用 REST API 來管理伺服器層級 IP 防火牆規則
| 命令 | Description |
|---|---|
| SQL 集區 | Synapse SQL 集區管理。 |
| Ip 防火牆規則 | Synapse IP 防火牆規則管理。 |
瞭解防火牆更新的延遲
伺服器驗證模型對所有安全性設定變更都有 5 分鐘延遲,除非資料庫為自主資料庫且沒有容錯移轉夥伴。 在沒有故障轉移夥伴的情況下,對封裝資料庫所做的變更是立即生效的。 對於具有備援夥伴的封閉資料庫,主資料庫上的每個安全性更新都會立即完成,但輔助資料庫最多可能需要 5 分鐘才能反映變更。
下表描述根據資料庫類型和故障轉移組態變更的安全性設定延遲:
| 驗證模型 | 已設定容錯移轉 | 安全性設定變更的延遲 | 延遲執行個體 |
|---|---|---|---|
| 伺服器驗證 | Yes | 5 分鐘 | 所有資料庫 |
| 伺服器驗證 | No | 5 分鐘 | 所有資料庫 |
| 封閉資料庫 | Yes | 5 分鐘 | 輔助資料庫 |
| 封閉資料庫 | No | 沒有 | 沒有 |
手動重新整理防火牆規則
如果您希望看到防火牆規則比通常的五分鐘延遲更快更新,您可以手動重新整理防火牆規則。 登入需要更新規則的資料庫實例,並執行 DBCC FLUSHAUTHCACHE。 這會導致資料庫實例排清其本機快取並重新整理防火牆規則。
DBCC FLUSHAUTHCACHE[;]
排除防火牆故障
當存取權不符合你預期時,請考慮以下幾點。
本地防火牆設定:
在你的電腦能存取專用 SQL 池之前,你可能需要在電腦上為 TCP 埠 1433 建立防火牆例外。 要在 Azure 雲端邊界內建立連線,可能需要開啟額外的埠口。
網路地址轉換:
由於網路位址轉換(NAT),你的電腦用來連接 Azure Synapse Analytics 的 IP 位址,可能會和你電腦 IP 設定中的 IP 位址不同。 要查看你電腦用來連接 Azure 的 IP 位址:
- 登入入口網站。
- 前往託管您資料庫的伺服器上的 設定 索引標籤。
- 目前的 用戶端 IP 位址 會顯示在 允許的 IP 位址 區塊中。 選擇 新增 來把 IP 位址新增到允許清單中,以便允許此電腦存取伺服器。
允許清單的變更尚未生效:
Azure Synapse Analytics防火牆設定的變更生效可能需要最多五分鐘的延遲。
登入未被授權,或是使用了錯誤的密碼:
如果登入沒有伺服器的權限或密碼不正確,連線至伺服器將會遭到拒絕。 建立防火牆設定只會讓客戶 端有機會嘗試 連接你的伺服器。 用戶端仍然必須提供必要的安全性認證。 更多資訊請參見 Azure Synapse Analytics 連線設定。
動態 IP 位址:
如果您有使用動態 IP 位址的網際網路連線,並且在通過防火牆時遇到問題,請嘗試下列其中一個解決方案:
- 洽詢網際網路服務提供者,要求他們提供為您存取伺服器的用戶端電腦指派的 IP 位址範圍。 將該 IP 位址範圍新增為 IP 防火牆規則。
- 改為針對您的用戶端電腦取得靜態 IP 位址。 將 IP 位址新增為 IP 防火牆規則。