設定伺服器和資料庫防火牆規則

已完成

防火牆用於防止未經授權的使用者存取受保護的資源。 每個 Azure SQL Database 會對應至 Microsoft 裝載的公用 IP 位址。 每個 Azure 區域都會有一個或多個公用 IP 位址,您可以在其中觸達您的資料庫閘道,然後將您帶到您的資料庫。

防火牆的運作方式

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

Database and server firewall diagram for Azure SQL Database.

如上圖所示,Azure 為保護您的資料庫和資料,提供了可限制存取的內建防火牆。 Azure SQL Database 有兩組不同的防火牆規則、伺服器層級防火牆規則和資料庫層級防火牆規則。

伺服器層級防火牆規則

伺服器和資料庫層級的防火牆都使用 IP 位址規則,而不是 SQL Server 登入,允許位於相同公用 IP 位址的所有使用者存取 SQL Server。 對大部分的公司而言,這就是其輸出的 IP 位址。

伺服器層級的防火牆會設定為允許使用者連線到伺服器的所有資料庫。 使用資料庫層級防火牆來授與或封鎖特定 IP 位址存取特定的資料庫。

您可以使用 Azure 入口網站來設定伺服器層級的防火牆規則,也可以使用 master 資料庫中的 sp_set_firewall_rule 預存程序設定。

注意

[允許 Azure 服務和資源存取此伺服器] 伺服器設定,啟用後會視為單一防火牆規則。

資料庫層級防火牆規則

資料庫層級的防火牆規則只能透過 T-SQL 以使用者資料庫中的 sp_set_database_firewall_rule 預存程序設定。

連線時,Azure SQL Database 會先尋找在連接字串中指定之資料庫名稱的資料庫層級防火牆規則。 如果此規則不存在,防火牆才會檢查伺服器層級的 IP 防火牆規則。 伺服器層級的 IP 防火牆規則適用於伺服器上所有資料庫。 如果其中一項存在,連線就會完成。

如果兩種規則都不存在,且使用者透過 SQL Server Management Studio 或 Azure Data Studio 連線,系統就會提示使用者建立防火牆規則,如下所示。

New Firewall Rule Screen from SQL Server Management Studio.

虛擬網路端點

虛擬網路端點允許來自特定 Azure 虛擬網路的流量。 這些規則不僅只會在資料庫層級套用,也會在伺服器層級套用。

此外,服務端點僅套用在一個區域,也就是基礎端點的區域。

另外要注意的是,連線到 Azure SQL Database 的虛擬網路必須具有 Azure SQL Database 公用 IP 位址的輸出存取權,此存取權可使用 Azure SQL Database 的服務標籤進行設定。

私人連結功能可讓您使用私人端點連線到 Azure SQL Database 和其他 PaaS 供應項目。

私人端點可讓連結到您的 Azure SQL Database 的連線完全經由 Azure 骨幹網路進行連線,而非透過公用網際網路。

這項功能會在您的虛擬網路上提供私人 IP 位址。 私人連結的另一項功能是,它允許 Azure Express Route 連線透過該線路連結。

私人連結還有多項優點,包括跨區域私人連線能力,以及只允許連線到特定資源的資料洩漏防護。