次の方法で共有


Azure Arc によって有効化された SQL Server の自動接続を管理する

適用対象: SQL Server

SQL Server インスタンスは、Azure Arc 対応サーバーにインストールされ、Arc サーバー リソースがサポートされているリージョンにある場合に、Azure Arc に自動的に接続されます。 すべての SQL Server インスタンス リソースが Azure に自動的に作成され、すべての SQL Server インスタンスに対して一元化された管理プラットフォームが提供されます。 詳細については、「Azure Arc で有効になっている SQL Server」を参照してください。

この記事では、Azure への SQL Server の接続の合理化されたプロセスがどのように機能するのかを詳しく説明します。

注意

2024 年 11 月 リリース以降の拡張機能を持つ既存のサーバーには、最小限の特権構成が自動的に適用されます。 この適用は段階的に実施させていただきます。

最小特権の自動適用を防ぐには、2024 年 11 月 リリース以降への拡張機能のアップグレードをブロックします。

前提条件

前提条件を満たしておいてください。

ライセンスの種類を指定する

必要に応じて、SQL Server の各インスタンスのライセンスの種類を指定します。

目的のライセンスの種類を指定するには、ライセンスの種類の値のタグを指定します。 自動接続のワークフローには、そのタグが必要です。 詳細については、「論理的な組織化のためにリソース、リソース グループ、サブスクリプションにタグを付ける」を参照してください。

以下のいずれかのタグと値を、サブスクリプション、リソース グループ、または Arc Server リソースに追加します。

タグ
ArcSQLServerExtensionDeployment Paid
ArcSQLServerExtensionDeployment PAYG
ArcSQLServerExtensionDeployment LicenseOnly

この値は、自動接続ワーク フローによって SQL Server 拡張機能がデプロイされるときに使用されます。

重要

SQL Server を使用するお客様が Azure Arc の価値を高めるには、ArcSQLServerExtensionDeployment タグを使用して既定値を設定していない場合、Microsoft はライセンスの種類の値を決定する自動化されたプロセスを使用します。 SQL Server がソフトウェア アシュアランス (SA) またはサブスクリプションとサポートの対象であり、購入したライセンスの数が、Azure ハイブリッド特典を使用するために Azure に既にコミットしたライセンスの数を超えている場合、このプロセスでは、オンボードされた SQL Server インスタンスのライセンスの種類の値が順番に 有料 に設定されます。 その結果、SA の顧客に提供される評価の高い管理機能に自動的にアクセスできます。

Arc に接続されている新しいサーバーに SQL Server 用 Azure 拡張機能を自動的にインストールする

SQL Server インスタンスがインストールされている場合、Azure Arc に接続されている Arc 対応の各サーバーに、SQL Server 用 Azure 拡張機能が自動的にインストールされます。 この自動プロセスには以下のタスクが含まれます。

  1. Microsoft.AzureArcData リソース プロバイダーがまだ登録されていない場合は、登録します。

  2. ライセンスの種類を設定する

  3. SQL Server 用 Azure 拡張機能をインストールします。

    注意

    ArcSQLServerExtensionDeployment タグの値が設定されている場合は、ライセンスの種類を設定します。

  4. Arc 対応 SQL Server インスタンス リソースを Azure に作成します。

Azure Arc によって有効化された SQL Server を自動的に接続するには、SQL Server を Azure Arc に自動的に接続する要件を満たすいずれかの方法を使用します。

接続が完了すると、SQL Server 用の Azure の機能を利用できます。 詳しくは、「SQL Server のライセンスと課金オプションを管理する」を参照してください。

ライセンスの種類の設定を確認して修正する

オンボード プロセスによって作成されたライセンスの種類の設定を確認するには、このリソース グラフ クエリを実行します。

resources
| where type == "microsoft.hybridcompute/machines"
| extend
    joinID = toupper(id)
| join kind = inner (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | extend machineId = toupper(substring(id, 0, indexof(id, '/extensions')))
    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
    | project  machineId, licenseType
) on $left.joinID == $right.machineId
| project id, licenseType

'Configuration needed' の値は、オンボード プロセスにライセンスの種類を自動的に設定するための十分な情報がなかったことを示します。 不足している値を設定する方法、または自動的に設定された値を変更する方法の詳細については、「SQL Server ライセンスと課金オプションを管理する」を参照してください

注意

ライセンスの種類を有料または PAYG に設定すると、SA のお客様に提供される重要な管理機能のロックが解除されます。

自動接続をオプトアウトする

SQL Server 用 Azure 拡張機能の自動インストールをオプトアウトするには、サブスクリプション、リソース グループ、Arc Server リソースに次のタグと値を追加します。

タグ
ArcSQLServerExtensionDeployment Disabled

または、サーバーにインストールできる拡張機能を制限することもできます。 サーバーで許可およびブロックする拡張機能の一覧を構成できます。 詳しくは、「拡張機能の許可リストとブロックリスト」をご覧ください。

SQL Server 用 Azure 拡張機能が自動的にインストールされる方法を理解する

Arc 対応サーバーへの拡張機能のインストールは、Windows サービス ゲスト構成拡張機能サービス (ExtensionService) を使って実行できます。 サーバーが Arc に接続されると、Windows サービス ゲスト構成拡張機能サービス (ExtensionService) がインストールされます。 このサービスは、マシン上の拡張機能 (エージェント、スクリプト、またはその他のソフトウェア) のインストール、アップグレード、削除を担当します。 ゲスト構成と拡張サービスは、Windows ではローカル システムとして、Linux ではルートとして実行されます。 Arc エージェント サービスとサービス アカウントについて詳しくは、「エージェントのセキュリティとアクセス許可」をご覧ください

API を呼び出して SQL Server 用 Azure 拡張機能をデプロイし、Arc 対応 SQL Server に自動的に接続できます。

また、Azure portal、Azure Resource Manager (ARM) API、Azure Policy、ARM テンプレート、Azure CLI、または Azure PowerShell モジュールを使って、拡張機能をインストールすることもできます。 Azure Arc によって有効化された SQL Server のデプロイ オプション

Arc に接続されているが、SQL Server 用 Azure 拡張機能がない SQL Server インスタンスを見つける

SQL Server はインストールされているが、SQL Server 用 Azure 拡張機能がない Arc Server を含むマシンとサブスクリプションの ID の一覧を表示するには、次の Azure Graph クエリを使います。

resources
| where type == "microsoft.hybridcompute/machines" and properties['detectedProperties']['mssqldiscovered'] has "true"
| extend
    joinID = toupper(id)
| join kind= inner  (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | extend machineId = toupper(substring(id, 0, indexof(id, '/extensions')))
    | project machineId, name
    | summarize allExtensions = make_list(name) by machineId
    | where allExtensions !has ("SqlServer")
) on $left.joinID == $right.machineId
| project id, subscriptionId, tenantId

次のステップ