針對 Azure SQL 資料庫 的 DNS 別名

適用於:Azure SQL 資料庫 Azure Synapse Analytics

Azure SQL 資料庫具有網域名稱系統 (DNS) 伺服器。 PowerShell 和 REST API 接受為您的邏輯 SQL 伺服器名稱建立和管理 DNS 別名的呼叫

DNS 別名可用來取代伺服器名稱。 用戶端程式可使用其連接字串中的別名。 DNS 別名提供轉換層,可將用戶端程式重新導向至不同的伺服器。 此層讓您不必尋找和編輯所有用戶端及其連接字串。

請注意

在 Azure Synapse Analytics 中,專用 SQL 集區(先前稱之 DW)僅支援 Azure SQL 邏輯伺服器 DNS 別名。 對於 Azure Synapse 工作區中的專用 SQL 集區,目前不支援 DNS 別名。 有何不同?

DNS 別名的常見用法包括下列案例:

  • 建立易記的伺服器名稱。
  • 在初始開發期間,您的別名可以歸屬至測試伺服器。 應用程式上線時,您可修改別名以歸屬至實際執行伺服器。 從測試轉換到實際執行環境不需要對連線到伺服器的幾個用戶端組態進行任何修改。
  • 假設應用程式中唯一的資料庫已移至另一部伺服器。 您可以修改別名,不需要修改幾個用戶端的組態。
  • 區域性中斷期間,您會使用異地復原來還原不同伺服器和區域中的資料庫。 您可以修改現有別名,指向新的伺服器,讓現有的用戶端應用程式可以重新連線。

網際網路的網域名稱系統 (DNS)

網際網路依賴 DNS。 DNS 會將您的易記名稱轉譯為您的伺服器名稱。

具有一個 DNS 別名的案例

假設您需要將系統切換至新的伺服器。 在過去,您需要尋找並更新每個用戶端程式中的每個連接字串。 但現今,如果連接字串使用了 DNS 別名,則只需更新別名屬性。

Azure SQL 資料庫的 DNS 別名功能可在下列案例中有所幫助說明:

對實際執行環境進行測試

當您開始開發用戶端程式,請讓他們在連接字串中使用 DNS 別名。 您會將別名的屬性指向伺服器的測試版本。

稍後當新系統在實際執行環境中上線,您即可更新別名的屬性,指向實際執行伺服器。 不需要變更客戶端程式。

跨區域支援

災害復原可能會將您的伺服器移轉到不同的異地區域。 對於使用 DNS 別名的系統,可免除找尋及更新所有用戶端的所有連接字串。 相反地,您可以更新別名以歸屬至現在裝載 Azure SQL 資料庫的新伺服器。

DNS 別名的屬性

下列屬性適用於伺服器的每個 DNS 別名:

  • 獨一無二的名稱:您所建立的每個別名名稱在所有伺服器上都是獨一無二,如同伺服器名稱。
  • 需要具備伺服器: 除非 DNS 別名只歸屬一部伺服器,且伺服器必須已經存在,否則無法建立 DNS 別名。 更新的別名一律必須只歸屬一部現有的伺服器。
    • 當您卸載伺服器,Azure 系統也會卸除歸屬伺服器的所有 DNS 別名。
  • 未繫結至任何區域: DNS 別名不會繫結至區域。 任何 DNS 別名都可以更新,以歸屬至位於任何異地區域中的伺服器。
    • 不過,更新別名來歸屬至另一部伺服器時,這兩部伺服器必須存在於相同的 Azure 訂用帳戶
  • 權限:欲管理 DNS 別名,使用者必須具有伺服器參與者權限或更高的權限。 如需其他詳細資訊,請參閱 使用 Azure 入口網站中的角色型存取控制展開操作

管理您的 DNS 別名

使用 REST API 或 PowerShell Cmdlet 均可供您以程式設計方式管理 DNS 別名。

使用 REST API 來管理 Azure SQL 資料庫 DNS 別名

REST API 的文件位於下列網頁位置附近:

使用 Azure SQL 資料庫 之 DNS 別名的 PowerShell

PowerShell Cmdlet 可供呼叫 REST API 使用。 如需 PowerShell 範例,請參閱:將 DNS 別名轉至 Azure SQL 資料庫的 PowerShell

程式碼範例中使用的 Cmdlet 如下:

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

重要

PowerShell Azure Resource Manager 模組仍受支援,但未來所有開發都是針對 Az.Sql 模組進行。 如需這些 Cmdlet,請參閱 AzureRM.Sql \(英文\)。 Az 模組和 AzureRm 模組中命令的引數本質上完全相同。

限制

當前,DNS 別名有下列限制:

  • 延遲最多 2 分鐘:更新或移除 DNS 別名最多需要 2 分鐘。
    • 無論任何暫時延遲,別名都會立即停止將用戶端連線歸屬至舊版伺服器。
  • DNS 查找:目前,檢查給定 DNS 別名指向伺服器的唯一授權方法是執行 DNS 查找
  • DNS 別名受限於 命名限制