Azure公式ドキュメント更新で確認すべきAzure Arc SQL Server Run Commandの運用影響

2026年4月28日の Azure 公式ドキュメント更新「Add at-scale query execution via Run Command to Azure Arc SQL Server docs」でまず確認すべき点は、Azure Arc SQL Server の運用が「インベントリを確認する」だけでなく、Run Command を使って複数の Arc 対応サーバー上でカスタム T-SQL を実行し、結果を集中管理する運用パターンまで明文化されたことです。特に developers、cloud admins、solution architects、technical decision makers は、仕様追加そのものよりも、権限設計・監査・ネットワーク・Log Analytics 連携への影響を先に確認する必要があります。

この更新は、単なる説明文の追記ではありません。MicrosoftDocs/sql-docs の該当コミットでは、overview.md と security-overview.md の2ファイルが変更され、65行追加・3行削除されています。overview.md では ms.date が 2026年4月28日に更新され、Microsoft Learn の該当ページも最終更新日が 2026年4月28日になっています。(GitHub)

目次

今回の更新で何が変わったか

今回の Azure 公式ドキュメント更新の要点は、Azure Arc enabled SQL Server における「at-scale query execution」、つまり複数環境にまたがる SQL Server へ横断的にクエリを実行する考え方が、Run Command と結び付けて説明された点です。

従来の Azure Arc SQL Server の説明では、インベントリ、ベストプラクティス評価、移行評価、Microsoft Defender for Cloud、Microsoft Purview などの管理・可視化機能が中心でした。更新後は、オンボード済みインスタンスに対して Run Command を使い、権限、構成、コンプライアンス状況などを確認するカスタム T-SQL スクリプトを実行し、その結果を中央に集約するユースケースが明記されています。(Microsoft Learn)

変更箇所追加・強調された内容実務で確認すべきこと
OverviewRun Command によるカスタム T-SQL の横断実行どの SQL Server に対して、誰が、どのクエリを実行できるか
Performance dashboards 周辺Logs Ingestion API で投入したカスタムテーブルを KQL ダッシュボードやアラートに活用Log Analytics のテーブル設計、保持期間、アクセス権
Custom data collection pipelineAutomation Runbook、ARM API、Run Command、Logs Ingestion API を組み合わせた収集パイプライン自動化 ID、DCR/DCE、監査ログ、ネットワーク許可
Security overviewRun Command は SQL Server 拡張機能そのものではなく、Microsoft.HybridCompute 経由の機能である点SQL Server 権限だけでなく、Arc-enabled server 側の RBAC を確認
Best practicesRun Command を使う場合の最小権限、DCR/DCE の RBAC、カスタム Log Analytics テーブル監視本番環境での一括実行前にガードレールを設計

重要なのは、今回の更新を「新しいボタンが Azure Portal に追加された」と読むのではなく、Azure Arc SQL Server の運用設計に、横断的なスクリプト実行とログ集約を組み込むための公式な参照材料が増えたと捉えることです。

Run Command は SQL Server 拡張機能ではなく Arc-enabled servers の機能

今回の更新で誤解しやすいのが、Run Command の位置付けです。

公式ドキュメントでは、Azure Extension for SQL Server が自動データ収集や構成コマンドを扱う一方、カスタムスクリプトを大規模に実行する場合は、別機能である Azure Arc-enabled servers Run Command がホストマシン上でスクリプトを実行すると説明されています。さらに、カスタム T-SQL の横断実行は SQL Server 拡張機能から直接実現されるのではなく、Microsoft.HybridCompute リソースプロバイダー経由で行われると明記されています。(Microsoft Learn)

この違いは、権限設計に直結します。SQL Server のログイン権限だけを見ても不十分で、Azure RBAC、Arc-enabled server の Run Command 権限、ホスト OS 上の実行コンテキスト、スクリプト内で使う SQL 認証方式までまとめて確認しなければなりません。

確認項目正しい理解見落とした場合のリスク
実行基盤Azure Arc-enabled servers Run CommandSQL Server 側だけで権限制御したつもりになる
リソースプロバイダーMicrosoft.HybridComputeAzure RBAC の対象を誤る
実行対象Arc に接続されたホストマシンOS 権限で想定外の操作が可能になる
SQL 実行スクリプト内で T-SQL を呼び出す接続先インスタンスや認証方式の管理が必要
結果集約Log Analytics やストレージなどへ送信出力制限、機密情報、保持期間を見落とす

仕様確認で最初に見るべきポイント

Run Command の対応範囲

Azure Arc-enabled servers Run Command は、Azure Arc に接続された VM に対して、RDP や SSH で直接接続せずにスクリプトやコマンドを実行する機能です。Azure CLI、PowerShell、REST API から利用でき、Windows と Linux、オンプレミス、VMware、AWS、GCP、OCI などの Arc 接続環境に対応すると説明されています。(Microsoft Learn)

ただし、Run Command のドキュメント上では preview とされており、Azure Portal からは現在利用できないという注意書きもあります。運用手順書を作る場合は、Portal 操作を前提にせず、Azure CLI、PowerShell、REST API のどれを標準手段にするか決めておく必要があります。(Microsoft Learn)

エージェントと拡張機能の前提

Run Command は Connected Machine agent に組み込まれており、公式ドキュメントでは version 1.33 以降から利用できると説明されています。SQL Server enabled by Azure Arc 側では、Azure Extension for SQL Server は直近1年以内にリリースされたバージョンのみがサポート対象とされています。(Microsoft Learn)

移行準備や運用展開の前に、次のように棚卸ししてください。

確認対象確認内容判断基準
Connected Machine agentRun Command を使えるバージョンか古い場合は検証環境で更新手順を確認
Azure Extension for SQL Serverサポート対象の範囲内か本番適用前に拡張機能の更新計画を立てる
Arc-enabled server と Arc-enabled SQL Serverリージョン整合性公式ドキュメントでは同一リージョン割り当てが重要とされる
OS と SQL Server対応構成かLinux/Windows、SQL Server バージョン、接続方式を確認
ネットワークAzure Arc と Log Analytics への送信経路プロキシ、Private Link、アウトバウンド443を確認

運用影響は「便利になる」より「強い権限をどう統制するか」が重要

Run Command は運用効率を大きく高めます。各サーバーに個別ログインせず、複数環境で構成確認、ヘルスチェック、コンプライアンス確認を実行できるからです。一方で、実行権限を広く付与すると、事実上のリモート管理権限になります。

公式ドキュメントでは、Run Command の実行は Windows では Local System、Linux では root として行われるため、OS と SQL Server インスタンスに対して強いアクセス権を持つと説明されています。また、Run Command のアクティビティは Azure Activity Logs に記録されるため、監査対象として扱うべきです。(Microsoft Learn)

影響領域確認すべき内容推奨アクション
Azure RBAC誰が Run Command を実行できるか専用カスタムロールまたは最小権限ロールを検討
OS 権限Local System/root 実行の影響実行スクリプトを読み取り専用から開始
SQL 権限どのログインで T-SQL を実行するかsysadmin 前提にしない。用途別の SQL 権限を設計
監査実行履歴を追跡できるかAzure Activity Logs と Log Analytics アラートを設定
機密情報クエリ結果に個人情報や認証情報が含まれないか収集項目をホワイトリスト化
変更管理本番全台に一括実行してよいかカナリア実行、段階展開、承認フローを用意

特に cloud admins は、Run Command の実行権限を「サーバー管理者なら全員に付与」で済ませないことが重要です。公式ドキュメントでは、Run Command の読み取りには Microsoft.HybridCompute/machines/runCommands/read、実行には Microsoft.HybridCompute/machines/runCommands/write が関係し、実行権限は Azure Connected Machine Resource Administrator 以上のロールで付与されると説明されています。(Microsoft Learn)

カスタム T-SQL 実行で向いている用途・向いていない用途

今回の更新は、Run Command で何でも一括実行することを推奨しているわけではありません。実務では、まず読み取り中心の確認から始めるのが安全です。

用途向き・不向き理由
権限棚卸し向いているログイン、ロール、権限差分を中央で確認できる
バックアップ状況確認向いている未バックアップ DB の検出に使いやすい
暗号化状況確認向いているTDE などの状態を横断的に集約しやすい
構成ドリフト検出向いているサーバー間の設定差分を可視化できる
大量データ抽出不向き出力制限、ネットワーク、Log Analytics コストの問題が出やすい
DDL/DML の一括変更慎重に扱う影響範囲が大きく、ロールバック設計が必要
認証情報の配布避けるべきシークレット漏えいのリスクが高い

たとえば、最初の検証では次のような読み取り専用の確認に絞ると安全です。

SET NOCOUNT ON;

SELECT
    @@SERVERNAME AS ServerName,
    name AS DatabaseName,
    is_encrypted AS IsEncrypted,
    state_desc AS StateDescription
FROM sys.databases
WHERE database_id > 4;

このようなクエリでも、本番では「どのインスタンスで実行するか」「結果に機密情報が含まれないか」「失敗時にどう扱うか」を事前に決めてください。横断実行では、1台で問題ないクエリが100台では運用事故につながることがあります。

Log Analytics 連携で確認すべきポイント

今回の更新では、Run Command で得た結果を Azure Monitor Log Analytics に送るカスタムデータ収集パイプラインも説明されています。公式ドキュメントでは、Azure Automation Runbook で Arc-enabled SQL Server リソースを列挙し、Run Command で各ホスト上の T-SQL を実行し、結果を処理して、Data Collection Endpoint と Data Collection Rule を使い Logs Ingestion API 経由で Log Analytics に送る流れが示されています。(Microsoft Learn)

Logs Ingestion API は、REST API またはクライアントライブラリから Log Analytics ワークスペースへデータを送信でき、カスタムテーブルにも対応します。DCR は受信データの構造や変換、送信先ワークスペースを制御する役割を持つため、単なるログ送信先ではなく、データ品質とセキュリティの制御点として設計する必要があります。(Microsoft Learn)

カスタムテーブルを作る場合は、最初から分析しやすいスキーマにしておくと後工程が楽になります。

カラム例用途
TimeGenerated収集時刻
ArcMachineResourceIdArc-enabled server の識別
SqlInstanceNameSQL Server インスタンス名
DatabaseName対象データベース
CheckName権限確認、暗号化確認、バックアップ確認など
SeverityInfo、Warning、Critical など
Finding検出内容
QueryVersion実行したクエリセットのバージョン
ExecutionId一括実行単位の追跡 ID

また、2026年3月1日以降、Logs Ingestion API では TLS 1.2 以上の接続が強制されると記載されています。古いプロキシ、古い OS、独自クライアントから送信している環境では、TLS 設定の確認も移行準備に含めるべきです。(Microsoft Learn)

実行結果の扱いで失敗しやすい点

Run Command の結果をそのまま標準出力で受け取る設計は、検証では便利ですが、本番の横断実行には向きません。Azure CLI の Run Command ドキュメントでは、instanceView の output と error は末尾4KBに制限されるため、完全な出力を得るには output blob や error blob への転送を使う方法が説明されています。(Microsoft Learn)

つまり、数十台・数百台の SQL Server から収集する設計では、最初から「結果をどこへ、どの形式で、どの権限で保存するか」を決めておく必要があります。

失敗しやすいポイント起きる問題対策
標準出力だけで結果を確認する出力が欠落するLog Analytics または Blob への保存を設計
JSON 形式を決めずに出力する後続の集計が困難スクリプト出力を JSON 化し、DCR で整形
機密情報をそのまま送るワークスペース閲覧者に漏れる収集項目を限定し、マスキングを行う
DCR/DCE の権限を広く付与する不正なログ投入や設定変更のリスクDCR、DCE、Workspace の RBAC を分離
保持期間を未設定にするコスト増や監査要件不備テーブル単位で保持期間を確認
失敗コードを監視しない一部サーバーの未収集に気付かない実行ステータスと未応答サーバーをアラート化

developers が確認すべき実装ポイント

developers が見るべきポイントは、Run Command の呼び出しそのものよりも、スクリプトと出力の品質です。

横断実行用のスクリプトは、通常の管理スクリプトよりも厳密に作る必要があります。対象サーバーが異なる OS、異なる SQL Server バージョン、異なるインスタンス構成を持つ可能性があるためです。

実装時は、次の基準でレビューしてください。

観点チェック内容
冪等性同じスクリプトを再実行しても副作用がないか
読み取り専用初期段階では SELECT 系の確認に限定しているか
タイムアウト応答しない SQL Server で全体が止まらないか
エラー処理接続失敗、権限不足、インスタンス不在を区別できるか
出力形式JSON など、後続処理しやすい形式になっているか
バージョン管理クエリとスクリプトにバージョンを付けているか
シークレットスクリプト内にパスワードやトークンを書いていないか

Azure CLI で Run Command を実行する場合、公式ドキュメントでは az connectedmachine run-command create を使う例が示されています。実務では、以下のように検証用の読み取り専用スクリプトから始めると安全です。(Microsoft Learn)

az connectedmachine run-command create \
  --resource-group "<resource-group>" \
  --machine-name "<arc-enabled-machine>" \
  --name "sql-readonly-check" \
  --script "<read-only script that runs T-SQL and outputs JSON>"

本番では、スクリプト本文をインラインで長く渡すより、レビュー済みのスクリプトを管理し、実行ログとバージョンを紐付ける設計が望ましいです。

cloud admins が確認すべき権限とネットワーク

cloud admins は、Run Command を「運用自動化機能」として許可する前に、リモート管理権限として扱う必要があります。公式セキュリティドキュメントでも、Run Command は直接 RDP や SSH を使わずに connected machine 上でスクリプトを実行できる一方、Local System または root の高い権限で動くため、意図しない権限昇格を避けるために厳格に認可を管理すべきとされています。(Microsoft Learn)

特に確認すべきネットワーク要件は、Arc の通信経路とログ投入経路です。SQL Server enabled by Azure Arc では Azure Arc Data Processing Service へのアウトバウンド通信が必要で、カスタムデータ収集で Azure Monitor Logs に送る場合は *.ingest.monitor.azure.com への接続も必要とされています。(Microsoft Learn)

領域確認内容
Azure RBACRun Command 実行権限を持つユーザー、グループ、サービス ID
ローカル制御Run Command が不要なサーバーではブロックリストや許可リストを検討
プロキシArc 通信と Logs Ingestion API の送信が通るか
Private LinkDCE が必要な構成か、既存 DCR が古くないか
Activity LogsRun Command 実行履歴を監査できるか
Log Analyticsカスタムテーブルの閲覧権限と保持期間
Key Vaultサービスプリンシパルを使う場合の資格情報保管

solution architects が設計すべき全体像

solution architects は、Run Command 単体ではなく、全体アーキテクチャとして考えるべきです。

推奨される構成は、次のような流れです。

ステップ内容設計上の判断
対象列挙ARM API で Arc-enabled SQL Server を取得サブスクリプション単位か、リソースグループ単位か
実行Run Command で読み取り専用 T-SQL を実行並列度、タイムアウト、対象除外条件
整形スクリプト出力を JSON 化DCR に合わせたスキーマ
送信Logs Ingestion API で Log Analytics へ投入DCR endpoint か DCE か
可視化KQL ダッシュボードとアラート運用チーム別のビュー
監査Activity Logs と ExecutionId を突合誰が、いつ、何を実行したか

公式ドキュメントでは、自動化 ID について、Azure Automation Runbook ではサービスプリンシパル資格情報よりもマネージド ID を優先し、サービスプリンシパルを使う場合は Key Vault に資格情報を保存することが推奨されています。(Microsoft Learn)

technical decision makers が判断すべき導入価値

technical decision makers にとっての判断軸は、機能の新しさではなく、運用課題をどれだけ標準化できるかです。

Azure Arc SQL Server と Run Command の組み合わせは、次のような課題がある組織で価値が出やすいです。

課題期待できる効果
オンプレミス、マルチクラウド、エッジに SQL Server が分散している調査・監査の実行手順を統一しやすい
権限棚卸しや構成確認が手作業定期実行と Log Analytics 集約で可視化しやすい
移行前の現状把握に時間がかかる移行評価に加えて、独自のチェック項目を補完できる
監査証跡がサーバーごとに分散しているAzure Activity Logs と Log Analytics に集約しやすい
運用チームごとにスクリプトが乱立しているクエリセットと実行権限を標準化できる

一方で、Run Command は強力な遠隔実行機能です。導入価値を出すには、「誰でも便利に使える機能」ではなく、「承認されたスクリプトだけを、限定された対象に、監査可能な形で実行する仕組み」として設計する必要があります。

導入前の実務チェックリスト

本番適用前には、次の順序で確認すると抜け漏れを減らせます。

順序作業完了条件
1対象 SQL Server と Arc-enabled server を棚卸し対象・除外対象・責任者が明確
2Connected Machine agent と SQL Server 拡張機能を確認サポート対象バージョンである
3Run Command の RBAC を確認実行権限が最小限に絞られている
4SQL 側の実行権限を確認sysadmin 常用を避けた設計になっている
5ネットワーク経路を確認Arc 通信と Logs Ingestion API が通る
6カスタムテーブルと DCR を設計収集データのスキーマが固定されている
7読み取り専用クエリで検証小規模な対象で成功・失敗パターンを確認
8監査とアラートを設定実行者、対象、失敗、異常値を追跡できる
9段階展開本番全体へ一括実行しない
10運用手順書に反映実行条件、承認、ロールバックが文書化されている

よくある誤解と注意点

Azure Extension for SQL Server だけで任意の T-SQL を横断実行できるわけではない

今回の更新では、カスタム T-SQL の横断実行は Azure Arc-enabled servers Run Command を使うと説明されています。SQL Server 拡張機能の通常のデータ収集や管理機能と、Run Command による任意スクリプト実行は分けて理解してください。(Microsoft Learn)

SQL Server の権限だけ見ても不十分

Run Command はホスト側で動くため、Azure RBAC と OS 上の実行権限が重要です。SQL Server のログイン権限が限定されていても、スクリプトの作り方や実行コンテキスト次第で想定外の操作につながる可能性があります。

Log Analytics に送るデータは監査データとして扱う

権限情報、構成情報、サーバー名、データベース名は、組織によっては機密性の高い情報です。カスタムテーブルに投入する前に、誰が閲覧できるか、どのくらい保持するか、アラート通知で外部に漏れないかを確認してください。

preview 表記の機能は運用前提を固定しすぎない

Run Command のドキュメントでは preview と表記されています。運用手順や自動化コードを作る場合は、API バージョン、サポート範囲、Portal 対応状況が変わる可能性を前提に、公式ドキュメントの更新を定期的に確認する運用にしてください。(Microsoft Learn)

まず取るべき次の行動

今回の Azure 公式ドキュメント更新で確認すべき結論は、Run Command による Azure Arc SQL Server の横断クエリ実行を、便利な自動化ではなく、強い権限を伴う運用基盤として設計することです。

最初の一歩としては、本番環境で一括実行するのではなく、次の3つを先に進めてください。

  • 対象となる Arc-enabled SQL Server と Connected Machine agent の状態を棚卸しする
  • Run Command の Azure RBAC、ローカル実行権限、SQL 実行権限を分けて設計する
  • 読み取り専用の小さな T-SQL から始め、Log Analytics への集約と監査ログを検証する

この順序で進めれば、仕様確認、運用影響の整理、移行準備を同時に進められます。特にマルチクラウドやオンプレミスを含む SQL Server 環境では、今回の更新をきっかけに、Arc 経由の監査・可視化・自動化を標準化する価値があります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次