設定 Azure Arc 所啟用的 SQL Server

適用於:SQL Server

每個已啟用 Azure Arc 的伺服器都包含一組屬性,這些屬性會套用至該伺服器中安裝的所有 SQL Server 實例。 您可以在電腦上安裝適用於 SQL Server 的 Azure 擴充功能之後,設定這些屬性。 不過,只有在已安裝 SQL Server 實例或實例時,屬性才會生效。 在 Azure 入口網站 中,由 Azure Arc 概啟用的 SQL Server 會反映 SQL Server 組態如何影響特定實例。

Azure 入口網站 SQL Server 組態可讓您執行下列管理工作:

  1. 設定 SQL Server 授權類型
  2. 訂閱擴充安全性 更新
  3. 從上線至 Azure Arc 排除 SQL Server 實例

必要條件

  • 您至少必須在組織建立的其中一個 Azure 訂閱中擔任參與者角色。 了解如何建立新的計費訂閱
  • 您擔任資源群組的參與者角色,SQL Server 執行個體將在該資源群組中註冊。 如需詳細資訊,請參閱受控的 Azure 資源群組
  • Microsoft.AzureArcDataMicrosoft.HybridCompute 資源提供者會在您針對 SQL Server 隨用隨付計費使用的每個訂閱中註冊。

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

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

授權類型

適用於:SQL Server

SQL Server 授權類型會識別特定虛擬機或實體伺服器上 SQL Server 實例的授權類型。 其中包含使用隨用隨付計費直接透過 Microsoft Azure 支付 SQL 軟體使用量的選項。

當您安裝適用於 SQL Server 的 Azure 擴充功能,且每個支援的上線方法都包含授權類型選項時,授權類型 是必要參數。 它可讓您使用 Azure Resource Graph 來追蹤 SQL Server 授權清查。 您也可以在成本管理 + 計費入口網站中追蹤軟體使用量。

為了方便起見, 每個已啟用 Arc 的 SQL Server 資源概觀 會顯示主機授權類型下的 授權類型

注意

SQL Server 2022 (16.x) 可讓您在安裝期間選取授權類型,包括隨用隨付計費選項。 請參閱 從安裝精靈安裝適用於 SQL Server 的 Azure 擴充功能。

支援下列授權類型:

授權類型 詳細描述 簡短描述
PAYG 透過 Microsoft Azure 使用隨用隨付計費的 Standard 或 Enterprise 版本 隨用隨付
已支付 具有軟體保證或 SQL 訂閱的 Standard 或 Enterprise 版本授權 具有軟體保證的授權
LicenseOnly 僅限 Developer、Evaluation、Express、Web、Standard 或 Enterprise 版本授權,不具軟體保證 僅限授權
  • PAYG:透過 Microsoft Azure 支付 SQL Server 軟體使用量的費用。 請參閱 SQL Server 價格和授權

    重要

    Azure Arc 隨用隨付 (PAYG) 所啟用的 SQL Server 提供彈性的訂用帳戶型存取 SQL Server。 使用PAYG的SQL Server 實例的伺服器必須持續連線到 Azure。 內建的復原能力可容許長達 30 天的間歇性聯機中斷。 在 30 天的不和諧之後,PAYG 訂用帳戶將會過期。 請注意,一旦訂用帳戶到期,您就無權使用軟體。

  • 付費LicenseOnly:使用現有的許可協定。 使用方式表示您已經擁有必要的授權。 在這些情況下,您的軟體使用量將會使用免費計量回報給您。 您可以在成本管理 + 計費入口網站分析使用量,以確定您有足夠的授權可供所有已安裝的 SQL Server 實例使用。

下表識別根據授權類型啟用的功能:

功能 授權 1 具有軟體保證
或 SQL 訂用帳戶的授權
隨用隨付
連接到 Azure Yes .是 Yes
SQL Server 詳細目錄 Yes .是 Yes
最佳做法評量 No .是 Yes
移轉評估 (預覽) No .是 Yes
詳細的資料庫詳細目錄 No .是 Yes
Microsoft Entra ID 驗證 Yes .是 Yes
適用於雲端的 Microsoft Defender Yes .是 Yes
透過 Microsoft Purview 控管 Yes .是 Yes
自動備份至本機記憶體 (預覽) No .是 Yes
時間點還原 (預覽) No .是 Yes
自動修補 No .是 Yes
容錯轉移叢集實例 (預覽) Yes .是 Yes
AlwaysOn 可用性群組 (預覽) Yes .是 Yes
監視 (預覽) No .是 Yes
以最低權限操作 (預覽) Yes .是 Yes

1 授權僅包含開發人員、Express、Web 或 Evaluation Edition 的 SQL Server 實例,以及使用 Server/CAL 授權的實例。

SQL Server 軟體的計費

[授權類型] 的值表示您是否已經有 SQL Server 授權,或偏好使用隨用隨付方法來支付。 如果您已經有授權或使用免費的 SQL Server 版本,則會使用免費計量回報軟體使用量。 如果您選取隨用隨付方法,將會使用非零隨用隨付計量。

計費精細程度為一小時。 隨用隨付費用是根據 SQL Server 版本和該小時內主控伺服器的大小來計算。 如果 SQL Server 執行個體安裝在實體伺服器上,則大小會以核心為單位來衡量,如果 SQL Server 執行個體安裝於虛擬機器上,則會以邏輯核心 (虛擬核心) 為單位來衡量。 在同一個 OS 上安裝多個 SQL Server 實例時,適用下列規則:

  • 只有一個實例必須針對主機的完整大小為每個OS授權,受限於核心大小下限。 如需詳細資訊,請參閱 SQL Server 授權指南 \(英文\)。 適用的規則如下:

  • 具有最高版本的實例會定義需要哪些授權。

  • 如果已安裝相同版本的兩或多個執行個體,則會依字母順序來對第一個執行個體計費。

  • 主機授權類型和獲獎 SQL Server 版本的組合會定義每小時會傳送哪些計費計量。

下表顯示用於不同授權類型和 SQL Server 版本的計量 SKU:

安裝的版本 預計的版本 授權類型 AG 複本 計量 SKU
Enterprise Core Enterprise PAYG No Ent 版本 - PAYG
Enterprise Core Enterprise 已支付 No Ent 版本 - AHB
Enterprise Core Enterprise LicenseOnly [是] 或 [否] Ent 版本 - 僅限授權
Enterprise Core Enterprise PAYG 或付費 Yes Ent 版本 - DR 複本
企業 1 Enterprise PAYG No Ent 版本 - PAYG
企業 1 Enterprise 已支付 No Ent 版本 - AHB
企業 1 Enterprise LicenseOnly [是] 或 [否] Ent 版本 - 僅限授權
企業 1 Enterprise PAYG 或付費 Yes Ent 版本 - DR 複本
標準 標準 PAYG No Std 版本 - PAYG
標準 標準 已支付 No Std 版本 - AHB
標準 標準 LicenseOnly No Std 版本 - 僅限授權
標準 標準 PAYG 或付費 Yes Std 版本 - DR 複本
評估 評估 LicenseOnly [是] 或 [否] Eval 版本
開發人員 開發人員 LicenseOnly [是] 或 [否] Dev 版本
Web Web LicenseOnly n/a Web 版本
快速 快速 LicenseOnly n/a Express 版本

1 安裝 Enterprise 版本時,表示使用伺服器/CAL 授權模型。 由於轉換至核心型授權模型不需要升級至 Enterprise Core,因此我們會將此版本視為 Enterprise Core。 尚未轉換成核心模型並使用Server/CAL 授權的實例必須將授權類型設定為 LicenseOnly。

除了計費差異之外,授權類型也會決定哪些功能可供已啟用 Arc 的 SQL Server 使用。 選取 LicenseOnly 授權類型時,不包含下列功能:

  • 故障轉移伺服器的授權權益。 適用於 SQL Server 的 Azure 擴充功能支援免費的故障轉移伺服器。 具體來說,延伸模組:

    • 自動偵測實例是否在可用性群組中裝載複本
    • 使用個別計量報告使用量。

    若要符合此權益的資格,複本必須完全被動。 其所有資料庫都必須是相同群組的一部分。 如果一或多個資料庫不是群組的一部分,實例會被視為作用中,並根據其版本計費。 如需詳細資訊,請參閱 SQL Server 授權指南

  • 詳細的資料庫詳細目錄。 您可以在 Azure 入口網站 中管理 SQL 資料庫清查。 如需詳細資訊,請參閱檢視資料庫

  • 從 Azure 管理 SQL Server 的自動更新。

  • 最佳做法評量。 定期掃描 SQL Server 組態,以產生最佳做法報告和建議。 如需最佳做法評估,請參閱設定 SQL Server 實例。

訂閱延伸安全性 更新

擴充安全性 更新 (ESU) 適用於使用授權與軟體保證或隨用隨付作為授權類型的合格 SQL Server 實例。 如果授權類型只有授權,則會停用啟用 ESU 訂用帳戶的選項。 請參閱 SQL Server 的擴充安全性 更新。

注意

如果開啟 ESU 授權類型 ,在 ESU 訂用帳戶取消之前,無法變更 LicenseOnly 為 。

排除實例

您可以將特定實例從由 Azure 原則或自動上線程式驅動的大規模上線作業中排除。 若要從這些作業中排除特定實例,請將實例名稱新增至 [略過實例] 清單。 如需大規模上線選項的詳細資訊,請參閱 Azure Arc 所啟用 SQL Server 的替代部署選項。

警告

無法使用隨用隨付 (PAYG) 的 SQL Server 實例。

修改 SQL Server 組態

您可以使用 Azure 入口網站、PowerShell 或 CLI,將特定已啟用 Arc 之伺服器上的所有或部分組態設定變更為所需的狀態。

若要使用單一命令修改較大範圍的 SQL Server 組態,例如資源群組、訂用帳戶或多個訂用帳戶,請使用 修改 SQL Server 組態 PowerShell 腳本。 它會發佈為 開放原始碼 SQL Server 範例,並包含逐步指示。

提示

因為指令碼已有預先安裝需要的 Azure PowerShell 模組,且您將經過自動驗證,所以請從 Azure 雲端殼層執行指令碼。 如需詳細資料,請參閱使用 Cloud Shell 執行指令碼

有兩種方式可以在 Azure 入口網站 中設定 SQL Server 主機。

  • 開啟已啟用 Arc 的伺服器概觀頁面,然後選取 [SQL Server 組態 ],如下所示。

    Screenshot of the SQL Server enabled by Azure Arc in Azure portal.

    Or

  • 開啟已啟用 Arc 的 SQL Server 概觀頁面,然後選取 [ 屬性]。 在 [SQL Server 組態] 下,選取您需要修改的設定:

    • 授權類型
    • ESU 訂用帳戶
    • 自動修補

    Screenshot of Azure portal SQL Server instance configuration.

設定 授權類型 屬性

選擇其中一種授權類型。 如需說明,請參閱 授權類型

設定 Extended Security 更新 屬性

您可以啟用或停用 ESU。 此設定是選擇性的,僅適用於限定版本的 SQL Server。 若要深入瞭解,請參閱什麼是 SQL Server 的擴充安全性 更新?

注意

若要啟用 ESU 訂用帳戶,授權類型必須設定為隨用隨付或具有軟體保證的授權。 如果設定為 [僅限授權],則會停用 [延伸安全性] 更新 選項。

新增至 [ 排除實例] 清單

如果您想要從由 Azure 原則或自動化上線程式驅動的大規模上線作業中排除特定實例,請在 [略過實例] 底下 新增這些實例。 這是選擇性設定。

儲存更新的組態

確認授權類型、ESU 設定和要排除的任何實例之後,請選取 [ 儲存 ] 以套用變更。

查詢 SQL Server 組態

您可以使用 Azure Resource Graph 來查詢所選範圍內的 SQL Server 組態設定。 請參閱下列範例。

依授權類型計算

此範例會依授權類型傳回計數。

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
| summarize count() by tostring(licenseType)

識別未定義授權類型的實例

此查詢會傳回授權類型為 Null 的實例清單。

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| where isnull(properties.settings.LicenseType)
| project ['id'], resourceGroup, subscriptionId

列出每個 SQL Server 實例的組態詳細數據

此查詢會識別每個實例的許多詳細數據,包括授權類型、ESU 設定和啟用的功能。

resources
| where type == "microsoft.hybridcompute/machines"| where properties.detectedProperties.mssqldiscovered == "true"| extend machineIdHasSQLServerDiscovered = id
| project name, machineIdHasSQLServerDiscovered, resourceGroup, subscriptionId
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), "")
    | project Extension_State = properties.provisioningState,
    License_Type = properties.settings.LicenseType,
    ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""),
    Extension_Version = properties.instanceView.typeHandlerVersion,
    Excluded_instances = properties.ExcludedSqlInstances,
    Purview = iff(notnull(properties.settings.ExternalPolicyBasedAuthorization),"enabled",""),
    Entra = iff(notnull(properties.settings.AzureAD),"enabled",""),
    BPA = iff(notnull(properties.settings.AssessmentSettings),"enabled",""),
    machineIdHasSQLServerExtensionInstalled)on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isnotempty(machineIdHasSQLServerExtensionInstalled)
| project-away machineIdHasSQLServerDiscovered, machineIdHasSQLServerExtensionInstalled

列出具有 SQL Server 實例的已啟用 Arc 的伺服器

此查詢會識別已啟用 Azure Arc 的伺服器,並在伺服器上探索到 SQL Server 實例。

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
//| summarize count()

此查詢會傳回已啟用 Azure Arc 的伺服器,這些伺服器具有 SQL Server 實例,但未安裝 Arc SQL Server 擴充功能。 此查詢僅適用於 Windows 伺服器。

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| project machineIdHasSQLServerDiscovered = id
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type == "WindowsAgent.SqlServer"
    | project machineIdHasSQLServerExtensionInstalled = substring(id, 0, indexof(id, "/extensions/WindowsAgent.SqlServer")))
on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isempty(machineIdHasSQLServerExtensionInstalled)
| project machineIdHasSQLServerDiscoveredButNotTheExtension = machineIdHasSQLServerDiscovered

如需 Azure Resource Graph 查詢的更多範例,請參閱 入門資源圖形查詢