銷售: 1-800-867-1380

Azure SQL Database 防火牆

更新日期: 2015年2月

Microsoft Azure SQL Database 為 Azure 和其他網際網路應用程式提供了關聯式資料庫服務。為了協助保護您的資料,Azure SQL 資料庫 防火牆會阻止對您 Azure SQL 資料庫 伺服器的所有存取,直到您指定哪些電腦擁有權限。防火牆會根據每一個要求的原始 IP 位址授與存取權。

若要設定防火牆,請建立防火牆規則來指定可接受的 IP 位址範圍。您可以在伺服器資料庫層級建立防火牆規則。

  • 伺服器層級防火牆規則:這些規則可讓用戶端存取整部 Azure SQL 資料庫 伺服器,也就是相同邏輯伺服器內的所有資料庫。這些規則會儲存在 master 資料庫中。

  • 資料庫層級防火牆規則:這些規則可讓用戶端存取 Azure SQL 資料庫 伺服器內的個別資料庫。這些規則會針對個別資料庫而建立,而且會儲存在個別資料庫中 (包括 master)。這些規則對於限制存取相同邏輯伺服器內的某些 (安全) 資料庫非常實用。



    note附註
    如果您在 Azure SQL 資料庫 中建立資料庫同盟,其中的根資料庫包含資料庫層級防火牆規則,則這些規則不會複製到同盟成員資料庫。如果您需要同盟成員的資料庫層級防火牆規則,您必須為同盟成員重新建立規則。但是,如果您使用 ALTER FEDERATION … SPLIT 陳述式將包含資料庫層級防火牆規則的同盟成員分割成新的同盟成員,則新的目的地成員將會擁有與來源同盟成員相同的資料庫層級防火牆規則。如需有關同盟的詳細資訊,請參閱Azure SQL Database 中的同盟

    目前的同盟實作將汰換 Web 和 Business 服務層。請考慮部署自訂的分區化解決方案以最大化擴充性、靈活性及效能。如需有關自訂分區化的詳細資訊,請參閱向外延展 Azure SQL Database

本主題內容

防火牆一開始會封鎖您 Azure SQL 資料庫 伺服器的所有存取。為了開始使用您的 Azure SQL 資料庫 伺服器,您必須移至管理入口網站,並指定可讓您存取 Azure SQL 資料庫 伺服器的一個或多個伺服器層級防火牆規則。使用防火牆規則可指定允許的網際網路 IP 位址範圍,以及 Azure 應用程式是否可以嘗試連接到您的 Azure SQL 資料庫 伺服器。

但是,如果您想要選擇性地授與 Azure SQL 資料庫 伺服器中其中一個資料庫的存取權,您必須使用超出伺服器層級防火牆規則內指定之 IP 位址範圍的 IP 位址範圍來針對所要的資料庫建立資料庫層級規則,並確定用戶端的 IP 位址在資料庫層級規則內指定的範圍之內。

來自網際網路和 Azure 的連線嘗試必須先通過防火牆,才能到達您的 Azure SQL 資料庫 伺服器或資料庫,如下圖所示。

SQL Database 防火牆會限制對伺服器的存取

當電腦嘗試從網際網路連接至您的資料庫伺服器時,防火牆會對照整組伺服器層級和資料庫層級 (如有必要) 防火牆規則來檢查要求的原始 IP 位址:

  • 如果要求的 IP 位址在伺服器層級防火牆規則內指定的其中一個範圍內,則會將連接授與您的 Azure SQL 資料庫 伺服器。

  • 如果要求的 IP 位址不在伺服器層級防火牆規則內指定的其中一個範圍內,則會檢查資料庫層級防火牆規則。如果要求的 IP 位址在資料庫層級防火牆規則內指定的其中一個範圍內,則只會將連接授與擁有相符資料庫層級規則的資料庫。

  • 如果要求的 IP 位址不在任何伺服器層級或資料庫層級防火牆規則內指定的範圍內,則連接要求會失敗。

note附註
若要從本機電腦存取 Azure SQL 資料庫,務必確定網路和本機電腦上的防火牆允許 TCP 連接埠 1433 上的傳出通訊。

當來自 Azure 的應用程式嘗試連線至您的資料庫伺服器時,防火牆會驗證是否允許 Azure 連線。若防火牆設定的開始和結束位址等於 0.0.0.0,表示允許這些連線。如果不允許連線嘗試,則要求不會到達 Azure SQL 資料庫 伺服器。

您可以利用兩種方式,在管理入口網站 中從 Azure 啟用連線:

  • 建立新伺服器時,選取 [允許 Windows Azure 服務存取伺服器] 核取方塊。

  • 從伺服器上的 [設定] 索引標籤,在 [允許的服務] 區段下方對 [Windows Azure 服務] 按一下 [是]。

可使用管理入口網站建立第一個伺服器層級防火牆設定,或使用 REST API 或 Azure PowerShell 以程式設計方式建立。可使用這些方法,以及透過 Transact-SQL 建立和管理後續的伺服器層級防火牆規則。如需伺服器層級防火牆規則的詳細資訊,請參閱作法:進行防火牆設定 (Azure SQL Database)

設定第一個伺服器層級防火牆後,您可能想要限制某些資料庫的存取。如果您在資料庫層級防火牆規則中指定的 IP 位址範圍超出伺服器層級防火牆規則中指定的範圍,則只有 IP 位址在資料庫層級範圍內的用戶端才能存取資料庫。一個資料庫最多可以有 128 個資料庫層級防火牆規則。可透過 Transact-SQL 建立和管理主要和使用者資料庫的資料庫層級防火牆規則。如需詳細資訊,請參閱作法:進行防火牆設定 (Azure SQL Database)

除了 Azure 管理入口網站 之外,可使用 Transact-SQL、REST API 和 Azure PowerShell,以程式設計方式管理防火牆規則。下表說明每種方法可用的命令集。

Transact-SQL

目錄檢視/預存程序

等級

描述

sys.firewall_rules

伺服器

顯示目前的伺服器層級防火牆規則

sp_set_firewall_rule

伺服器

建立或更新伺服器層級防火牆規則

sp_delete_firewall_rule

伺服器

移除伺服器層級防火牆規則

sys.database_firewall_rules

資料庫

顯示目前的資料庫層級防火牆規則

sp_set_database_firewall_rule

資料庫

建立或更新資料庫層級防火牆規則

sp_delete_database_firewall_rule

資料庫

移除資料庫層級防火牆規則

REST API

API

等級

描述

列出防火牆規則

伺服器

顯示目前的伺服器層級防火牆規則

建立防火牆規則

伺服器

建立或更新伺服器層級防火牆規則

設定防火牆規則

伺服器

更新現有伺服器層級防火牆規則的屬性

刪除防火牆規則

伺服器

移除伺服器層級防火牆規則

Azure PowerShell

Cmdlet

等級

描述

Get-AzureSqlDatabaseServerFirewallRule

伺服器

傳回目前的伺服器層級防火牆規則

New-AzureSqlDatabaseServerFirewallRule

伺服器

建立新的伺服器層級防火牆規則

Set-AzureSqlDatabaseServerFirewallRule

伺服器

更新現有伺服器層級防火牆規則的屬性

Remove-AzureSqlDatabaseServerFirewallRule

伺服器

移除伺服器層級防火牆規則

note附註
防火牆設定的變更最長可能會延遲五分鐘才生效。

Microsoft Azure SQL Database 服務存取的行為不如您預期時,請考慮下列幾點:

  • 本機防火牆設定:您需要先在電腦上建立 TCP 通訊埠 1433 的防火牆例外,您的電腦才能存取 Azure SQL 資料庫。

  • 網路位址轉譯 (NAT):由於 NAT 的關係,您的電腦用來連線至 Azure SQL 資料庫 的 IP 位址,可能與您電腦的 IP 組態設定中顯示的 IP 位址不同。若要檢視電腦用來連線至 Azure 的 IP 位址,請登入管理入口網站,然後瀏覽至主控資料庫的伺服器上的 [設定] 索引標籤。[允許的 IP 位址] 區段下方會顯示 [目前用戶端 IP 位址]。按一下 [新增至允許的 IP 位址] 可允許此電腦存取伺服器。

  • 對允許清單所做的變更尚未生效:對 Azure SQL 資料庫 防火牆組態的變更最長可能會延遲五分鐘才生效。

  • 登入未經授權或使用了不正確的密碼:如果登入不具備 Azure SQL 資料庫 伺服器的權限或使用的密碼不正確,連線至 Azure SQL 資料庫 伺服器將會遭到拒絕。建立防火牆設定只是提供一個機會讓用戶端嘗試連線至您的伺服器;每一個用戶端都必須提供必要的安全性認證。如需準備登入的詳細資訊,請參閱管理 Azure SQL Database 中的資料庫和登入

  • 動態 IP 位址:如果您具有使用動態 IP 位址的網際網路連線,並且在通過防火牆時遇到問題,您可以嘗試下列其中一個解決方案:

    • 要求您的網際網路服務提供者 (ISP) 提供指定至用戶端電腦的 IP 位址範圍,以便存取 Azure SQL 資料庫 伺服器,然後將 IP 位址範圍新增為防火牆規則。

    • 改為取得用戶端電腦的靜態 IP 位址,然後將 IP 位址新增為防火牆規則。

另請參閱

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2015 Microsoft