先決條件 - 透過 Azure Arc 啟用的 SQL Server

適用於:SQL Server

啟用 Azure Arc 的 SQL Server 實例是指位於本地或雲端供應商中,連接至 Azure Arc 的實例。本文將說明這些先決條件。

如果您的SQL Server虛擬機運行於基於 VMware vSphere 的環境(包括透過 VMware vSphere Foundation 或 VMware Cloud Foundation 授權的環境),請檢視 Support on VMware

開始部署前

在啟用 SQL Server 實例之前,您需要:

安裝帳戶權限

使用者或服務主體需要:

  • 訂閱的讀取權限
  • 擁有作業系統上的本機系統管理員權限,以安裝及設定代理程式
    • 若為 Linux,則使用根帳號
    • 對於 Windows,請使用屬於本地管理員群組的帳號

使用 Arc 啟用 SQL Server 之前,安裝指令碼會檢查:

  • 支援 Arc 支援的 SQL Server 區域
  • Microsoft.AzureArcData 資源提供者已註冊

這些檢查需要使用者訂用帳戶的讀取權限。

要完成任務,使用者或服務主體需要在 Azure 資源群組中取得以下權限:

  • Azure Connected Machine Onboarding 角色
  • Microsoft.AzureArcData/register/action
  • Microsoft.HybridCompute/machines/extensions/read
  • Microsoft.HybridCompute/machines/extensions/write
  • Microsoft.Resources/deployments/validate/action

將使用者指派到具備這些權限的內建角色,例如:

欲了解更多資訊,請參閱 使用 Azure 入口網站指派 Azure 角色

確認使用者資料庫的狀態

當 SQL Server 實例被 Azure Arc 啟用時,連線會設定一些資料庫權限,讓你能從 Azure 管理資料庫。 關於資料庫層級權限設定的詳細資訊,請參見 SQL 權限

僅包含線上且可更新的資料庫。

請確認你打算從 Azure 管理的任何資料庫狀態。

此查詢列出所有資料庫、其狀態,以及是否可更新:

SELECT name AS DatabaseName,
       CASE WHEN state_desc = 'ONLINE' THEN 'Online'
            WHEN state_desc = 'OFFLINE' THEN 'Offline'
            ELSE 'Unknown'
       END AS Status,
       CASE WHEN is_read_only = 0 THEN 'READ_WRITE'
            ELSE 'READ_ONLY'
       END AS UpdateableStatus
FROM sys.databases;

在您啟用的任何執行個體上執行該查詢。

服務帳戶權限

SQL Server服務帳號必須在每個SQL Server實例中,擔任固定伺服器角色sysadmin的成員。 預設情況下,SQL Server 服務帳號是固定伺服器角色的 sysadmin 成員。

欲了解更多此要求,請參閱 SQL Server 服務帳戶

NT AUTHORITY\SYSTEM 登入要求

SQL Server 部署器的Azure擴充功能以 LocalSystemNT AUTHORITY\SYSTEM)帳號執行,用於權限設定。 在此過程中,部署器會使用 Windows 整合的認證功能連接每個 SQL Server 實例。

預設情況下,NT AUTHORITY\SYSTEM 擁有 CONNECT SQL 權限的 SQL Server 登入。 在 SQL Server 環境中,如果因為安全強化而移除或限制 NT AUTHORITY\SYSTEM 登入(例如停用登入或拒絕 CONNECT SQL),Azure 的 SQL Server 擴充套件將無法成功部署。

在正式環境執行此查詢前,請先在非正式環境或測試環境中檢視並測試,以驗證結果。 為了驗證 NT AUTHORITY\SYSTEM 能連接 SQL Server,請對每個實例執行以下查詢(在非生產環境或測試環境中檢視並測試,然後再進入生產環境執行):

SELECT sp.name AS login_name,
       CASE WHEN sp.is_disabled = 1 THEN 'DISABLED' ELSE 'ENABLED' END AS login_status,
       ISNULL(p.state_desc, 'NONE (implicit)') AS connect_sql_permission
FROM sys.server_principals AS sp
     LEFT OUTER JOIN sys.server_permissions AS p
         ON p.grantee_principal_id = sp.principal_id
        AND p.permission_name = N'CONNECT SQL'
        AND p.class_desc = N'SERVER'
WHERE sp.name = N'NT AUTHORITY\SYSTEM';

成功的配置需要:

  • 登入存在(回傳一列)
  • 登入狀態為 ENABLED
  • CONNECT SQL 許可已核發

如果您的組織認為重新新增 NT AUTHORITY\SYSTEM 帳號或授予額外權限適合您的環境,請透過建立認證並授予 CONNECT SQL 權限恢復連線:

CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;
GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM];

在做出變更後,請確認延長條款是否成功。

設定代理伺服器排除

Note

從 2024 年 4 月的發行開始,這個排除不再是必要的。 從擴充功能版本 1.1.2986.256 開始,你可以設定 NO_PROXY 環境變數繞過特定 URL 的代理伺服器,同時將其他請求通過代理伺服器。 例如,使用 NO_PROXY 將請求路由至 Azure Key Vault 私有端點。

如果你使用代理伺服器,請設定 NO_PROXY 環境變數排除代理流量:

  • localhost
  • 127.0.0.1

連接到 Azure Arc 資料處理服務

啟用 Arc 的 SQL Server 需要外撥連線至 Azure Arc 資料處理服務。

每台虛擬或實體伺服器都需要與 Azure 通訊。 具體而言,他們需要連線到:

  • URL:*.<region>.arcdataservices.com
    • 針對美國政府弗吉尼亞地區,請使用 *.<region>.arcdataservices.azure.us
  • 連接埠:443
  • 方向: 出站
  • 認證提供者:Microsoft Entra ID

要取得區域端點的區域區段,請移除 Azure 區域名稱中的所有空間。 例如,美國東部 2 區域,區域名稱為 eastus2

例如:在美國東部 2 區域,*.<region>.arcdataservices.com 應為 *.eastus2.arcdataservices.com

欲查詢支援區域列表,請參考 Supported Azure regions

如需所有區域的清單,請執行此命令:

az account list-locations -o table

Note

你不能用 Azure Private Link 連線來連接 Azure Arc 的資料處理服務。 請參閱不支援的設定

啟用 Microsoft Entra 認證所需的網路需求

啟用由 Azure Arc 啟用的 SQL Server 的 Microsoft Entra 認證時,如果防火牆封鎖傳出的 URL,必須明確允許某些 URL。 將下列 URL 新增至 allowlist:

  • https://login.microsoftonline.com/
  • https://login.microsoft.com/
  • https://enterpriseregistration.windows.net/
  • https://graph.microsoft.com/
  • https://<azure-keyvault-name>.vault.azure.net/(僅在使用憑證進行Microsoft Entra認證時必須)

此外,你可能需要允許Azure入口網站驗證網址

支援的 SQL Server 版本與環境

支援的設定

SQL Server 版本

SQL Server 2012(11.x)及之後版本。

Note

僅支援 64 位元 SQL Server 版本。

作業系統

  • Windows 10 與 11
  • Windows Server 2012 及更新版本
  • Ubuntu 20.04 (x64)
  • Red Hat Enterprise Linux (RHEL) 8 (x64)
  • SUSE Linux Enterprise Server (SLES) 15 (x64)

Important

Windows Server 2012 與 Windows Server 2012 R2 支援於 2023 年 10 月 10 日結束。 更多資訊請參閱 SQL Server 2012 及 Windows Server 2012/2012 R2 支援終止

.NET Framework

在 Windows 上,使用 .NET Framework 4.7.2 及更新版本。

此需求從延伸項目版本 1.1.2504.99 開始 (2023 年 11 月 14 日版本)。 如果沒有此版本,延伸項目功能可能無法如預期般運作。 Windows Server 2012 R2 預設不包含 .NET Framework 4.7.2,必須相應更新。

VMware 上的支援

你可以在執行以下的 VMware 虛擬機中部署由 Azure Arc 啟用的 SQL Server:

  • On-premises
  • 在 VMware 解決方案中,例如:
    • Azure VMware Solution (AVS)

      VMware vSphere 仍是底層虛擬化平台。 在 Broadcom 收購 VMware 後,vSphere 產品名稱未曾更改;然而,VMware 更新了 vSphere 的包裝與授權方式(例如透過 VMware vSphere Foundation 與 VMware Cloud Foundation)。

      Warning

      如果你在 Azure VMware Solution(AVS)私有雲中運行SQL Server虛擬機,請依照 部署 Arc 啟用的 Azure VMware Solution 步驟來啟用。

      只有此部署機制可讓您在 AVS 私人雲端中使用 Arc 功能的完整整合體驗。

    • AWS 上的 VMware 雲端

    • Google Cloud VMware 引擎

VMware 的包裝與支援範圍

由 Azure Arc 啟用的 SQL Server 支援在基於 VMware vSphere 的環境中運行的虛擬機器上的 SQL Server 實例,包括 Azure VMware Solution。

支援不依賴特定的 VMware 商業套件、版本或包裝。 以下要求決定支持:

  • 支援的訪客作業系統
  • 支援的 SQL Server 版本
  • Azure Arc 連接機器代理程式的需求

VMware(Broadcom)定義 VMware 的打包、授權及生命週期政策,並可能獨立於 Azure Arc 進行變更。

不支援的組態

啟用 Azure Arc 的 SQL Server 目前不支援以下配置:

  • Windows Server 2012 或更舊版本的 Windows Server。 他們沒有最低要求的 TLS 版本來安全認證 Azure。
  • Windows Server 2012 R2 支援 DPS,因為它支援 TLS 1.2。 Windows Server 2012 R2 不支援遙測端點。 因此,不支援效能儀表板、移轉評估等功能。
  • SQL Server 在容器中運行。
  • SQL Server 版本:商業智慧。
  • Private Link連接至用於庫存與使用上傳的<region>.arcdataservices.com端點的Azure Arc資料處理服務。
  • SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)以及更舊版本。
  • 安裝 Arc agent 和 SQL Server 擴充功能無法在 sysprep 映像製作中完成。
  • 在同一主機作業系統上安裝多個 SQL Server 實例,且實例名稱相同。
  • Azure 虛擬機中的 SQL Server。
  • Always On 可用性群組,其中一個或多個副本位於故障移轉叢集實例上。
  • SQL Server Reporting Services(SharePoint 模式)。
  • DBCC CLONEDATABASE (Transact-SQL)在預設安裝的 Azure 擴充功能中執行會在 SQL Server 中拋出錯誤。 要執行 DBCC CLONEDATABASE,Azure 擴充功能必須在 最低特權模式中執行。
  • 資料庫和可用性群組名稱帶有後尾空白(例如 MyDb )在使用二進位整合BIN/BIN2的實例中不被支援。 這些物件會被擴充功能跳過並附上警告。 在非二元排序(預設值)中,後方空白會自動修剪,物件則正常管理。
  • SQL Server 不支援包含 # 符號的實例名稱。 如需命名規則和限制的完整清單,請檢閱 命名規則和限制

註冊資源提供者

若要註冊資源提供者,請使用下列任一方法:

  1. 選取 訂用帳戶
  2. 選擇您的訂用帳戶。
  3. 在 [設定] 下,選取 [資源提供者]。
  4. 搜尋 Microsoft.AzureArcDataMicrosoft.HybridCompute,並選擇 Register

Azure 訂閱與服務限制

在用 Azure Arc 配置你的 SQL Server 實例和機器之前,先檢視 Azure Resource Manager 訂閱限制 以及 資源群組限制,規劃連接機器數量。

支援的區域

由 Azure Arc 啟用的 SQL Server 可在以下地區使用:

  • 美國東部
  • 美國東部 2
  • 美國西部
  • 美國西部 2
  • 美國西部 3
  • Central US
  • 美國中北部
  • 美國中南部
  • 美國中西部
  • 美國政府弗吉尼亞 1
  • 加拿大中部
  • 加拿大東部
  • 英國南部
  • 英國西部
  • 法國中部
  • 西歐
  • 北歐
  • 瑞士北部
  • 印度中部
  • Brazil South
  • 南非北部
  • 阿拉伯聯合大公國北部
  • 日本東部
  • 南韓中部
  • 東南亞
  • Australia East
  • 瑞典中部
  • 挪威東部

1 美國政府維吉尼亞州區域尚未支援所有功能。 詳情請檢閱在美國政府中由 Azure Arc 啟用的 SQL Server

Important

  • 為了成功佈建和運作,應將同一區域分配給啟用 Arc 的伺服器和啟用 Arc 的 SQL Server。

安裝 Azure 擴充功能以支援 SQL Server

SQL Server 2022(16.x)設定安裝精靈不支援安裝 SQL Server 的 Azure 擴充功能。

你可以用兩種方式安裝這個元件:

針對基於 VMware vSphere 的環境,請參閱 VMware 的支援