次の方法で共有


SQL Server 用の Azure 拡張機能の Windows サービス アカウントとアクセス許可を構成する

適用対象:SQL Server

この記事では、Azure NT Service\SQLServerExtension SQL Server インスタンスに対して最小限の特権を使用する場合に、SQL Server 用 Azure 拡張機能が アカウントに付与するアクセス許可の一覧を示します。最小限の特権構成では、Azure portal で機能を有効にした場合にのみ、必要なアクセス許可が拡張機能によって付与されます。

Note

NT Authority\System には、一覧表示されているディレクトリとレジストリ キーに対するアクセス許可を変更するためのアクセス許可が必要です。 このアクセスは、 NT Authority\System が最小限の特権モードで NT Service\SqlServerExtension アカウントに必要なアクセス権を付与できるようにするために必要です。

Overview

最小限の特権を有効にして SQL Server を Azure Arc に接続すると、Azure Arc 拡張機能は、その機能を有効にするときに必要なアクセス許可のみを、サービス アカウントNT SERVICE\SQLServerExtension付与します。 この機能を無効にすると、拡張機能によってこれらのアクセス許可が自動的に削除されます。 機能が非アクティブな場合、拡張機能はその機能に対するアクセス許可を付与しません。

エージェント アカウントのアクセス許可を手動で設定することはできません。

Note

現時点では、最小特権構成は既定では適用されません。

拡張機能バージョンが 1.1.2859.223 以上の既存のサーバーでは、最終的に最小限の特権構成が適用されます。 この拡張機能は、2024 年 11 月にリリースされました。 最小特権の自動適用を防ぐには、 1.1.2859.223後に拡張機能のアップグレードをブロックします。

機能別の SQL 特権セクションでは、次の機能を有効にしたときに拡張機能によって付与されるアクセス許可について説明します。

ディレクトリのアクセス許可

ディレクトリ パス 必要なアクセス許可 Details Feature
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer フル コントロール 拡張子は DLL と EXE ファイルに関連しています。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings フル コントロール 拡張機能の設定ファイル。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status フル コントロール 拡張機能の状態ファイル。 Default
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer フル コントロール 拡張ログ ファイル。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json フル コントロール 拡張ハートビート ファイル。 Default
%ProgramFiles%\Sql Server Extension フル コントロール 拡張サービス ファイル。 Default
<SystemDrive>\Windows\system32\extensionUpload フル コントロール 課金に必要な使用状況ファイルを書き込むには必要です。 Default
<SystemDrive>\Windows\system32\ExtensionHandler.log フル コントロール 拡張機能によって作成されたログ前フォルダー。 Default
<ProgramData>\AzureConnectedMachineAgent\Config Read Arc 構成ファイル ディレクトリ。 Default
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent フル コントロール 評価レポートと状態を記述するために必要です。 Default
SQL ログ ディレクトリ (レジストリで設定) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log
Read SQL ログから SQL 仮想コア情報を抽出するために必要です。 Default
SQL バックアップ ディレクトリ (レジストリで設定) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup
ReadAndExecute/Write /Delete バックアップに必要 Backup

1 詳細については、「 ファイルの場所とレジストリ マッピング」を参照してください。

レジストリの権限

基本キー: HKEY_LOCAL_MACHINE

レジストリ キー 必要な権限 Details Feature
SOFTWARE\Microsoft\Microsoft SQL Server Read installedInstancesなどの SQL Server プロパティを読み取ります。 Default
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER フル コントロール Microsoft Entra ID と Purview。 Microsoft Entra ID

Purview
SOFTWARE\Microsoft\SystemCertificates フル コントロール Microsoft Entra ID に必要です。 Microsoft Entra ID
SYSTEM\CurrentControlSet\Services Read SQL Server アカウント名。 Default
SOFTWARE\Microsoft\AzureDefender\SQL Read Azure Defender の状態と最終更新時刻。 Default
SOFTWARE\Microsoft\SqlServerExtension フル コントロール 拡張機能に関連する値。 Default
SOFTWARE\Policies\Microsoft\Windows 読み取りと書き込み 拡張機能を使用して Windows の自動更新を有効にする。 自動更新

グループのアクセス許可

NT Service\SQLServerExtension は、ハイブリッド エージェント拡張機能アプリケーションに追加されます。 これにより、Azure Instance Metadata Service (IMDS) ハンドシェイクは、データ処理サービス (DPS) や課金の使用状況、拡張機能ログ、ダッシュボード データ収集の監視のために Azure データ プレーン サービスと通信するために必要なマシン リソースマネージド ID トークンを取得できます。

SQL のアクセス許可

NT Service\SQLServerExtension アカウントが追加されます。

  • マシンに現在存在するすべてのインスタンスへの SQL ログインとして
  • 各データベースのユーザーとして

拡張機能は、機能が有効になっているとき、インスタンス オブジェクトとデータベース オブジェクトへのアクセス許可も付与します。

Note

最小アクセス許可は、有効な機能によって異なります。 拡張機能は、不要になったときにアクセス許可を更新します。 機能を有効にすると、必要なアクセス許可が付与されます。

NT Service\SQLServerExtension アカウントのアクセス許可の詳細

レジストリ パス 権限 NT Service\SQLServerExtension アカウントが侵害された場合のアクセス許可に関連するリスク
SOFTWARE\Microsoft\Microsoft SQL Server Read 拡張機能では、インストールされている SQL Server のバージョンを確認できます。
SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLSERVER フル コントロール Microsoft Entra 認証または Purview が有効になっている場合にのみ必要です。 拡張機能によって SQL Server の構成が変更される可能性があります。
SOFTWARE\Microsoft\SystemCertificates フル コントロール Microsoft Entra 認証が有効になっている場合にのみ必要です。 拡張機能は、信頼されたルート証明機関を置き換えることができます。
SYSTEM\CurrentControlSet\Services Read 拡張機能では、サービス アカウント名を確認できます。
SOFTWARE\Microsoft\AzureDefender\SQL Read 拡張機能では、Microsoft Defender の状態と更新時刻を学習できます。
SOFTWARE\Microsoft\SqlServerExtension フル コントロール 拡張機能によって拡張機能の設定が変更される可能性があります。
SOFTWARE\Policies\Microsoft\Windows 読み取りと書き込み 自動更新が有効になっている場合にのみ必要です。 拡張機能は、Windows Update ポリシーを変更し、コードの整合性と仮想化ベースのセキュリティを制御する Device Guard を無効にし、パッチが不足しているために長時間公開される可能性があります。

機能別の SQL 特権

次の表に、Azure Extension for SQL Server によって付与されるアクセス許可を制御する機能の既定の動作を示します。

Feature 既定の動作
既定の拡張機能のアクセス許可 既定で有効
自動バックアップ 既定では無効になっています
可用性グループ 既定で有効
ベスト プラクティス アセスメント 既定では無効になっています
移行の評価 既定で有効
データベースの移行 既定で有効
ポイントインタイム リストア 既定では無効になっています
Purview 既定では無効になっています

既定の拡張機能のアクセス許可

次の既定のアクセス許可は、Azure Extension for SQL Server によって提供される基本的な機能レベルの最小要件であり、適用する必要があります。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database master VIEW DATABASE STATE
Database msdb ALTER ANY SCHEMA
Database msdb CREATE TABLE
Database msdb CREATE TYPE
Database msdb DB DATA READER
Database msdb DB DATA WRITER
Database msdb EXECUTE
Database msdb SELECT dbo.backupfile
Database msdb SELECT dbo.backupmediaset
Database msdb SELECT dbo.backupmediafamily
Database msdb SELECT dbo.backupset
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobactivity
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.syssessions
Database msdb SELECT dbo.sysoperators
Database msdb SELECT dbo.suspectpages
Server CONNECT ANY DATABASE
Server CONNECT SQL
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE

自動バックアップ

自動バックアップ は既定で無効になっています。 この拡張機能は、自動バックアップが有効になっているすべてのデータベースにバックアップアクセス許可を付与します。 バックアップ機能を有効にすると 、特定の時点の復元 機能も有効になるため、データベースを作成する権限も付与されます。

機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] DB BACKUP OPERATOR
Server CREATE ANY DATABASE
Server master DB CREATOR

可用性グループ

フェールオーバーなどの可用性グループ の検出と管理機能は既定で有効になっていますが、 AvailabilityGroupDiscovery 機能フラグを使用して無効にすることができます。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server VIEW ANY DEFINITION

ベスト プラクティス アセスメント

ベスト プラクティスの評価は、既定では無効になっています。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database master SELECT
Database master VIEW DATABASE STATE
Database msdb SELECT
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE
StoredProcedure EnumErrorLogsSP EXECUTE
StoredProcedure ReadErrorLogsSP EXECUTE

データベース移行

データベース移行機能は既定で有効になっており、既定の拡張機能のアクセス許可に記載されているアクセス許可のみが必要ですが、データベース移行機能で使用される一部のアクセス許可には、特定の移行アクションが実行されたときに Just-In-Time アクセス許可が付与されます。

次のアクションでは、拡張機能が Just-In-Time を付与する追加のアクセス許可が必要です。

Note

Azure の SqlServerAvailabilityGroups_CreateManagedInstanceLinkSqlServerAvailabilityGroups_failoverMiLinkSqlServerAvailabilityGroups_deleteMiLink のアクセス許可を持つユーザーは、移行プロセス中に データベース移行 ページでアクションを実行できます。このページでは、拡張機能によって使用されるアカウントの SQL Server アクセス許可 ( sysadmin ロールを含む) が昇格されます。

[データの移行] ステップで、Managed Instance リンク移行の [確認と作成] タブで [データ移行の開始] を選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 分散型可用性グループを構成するには、サービス アカウントに昇格されたアクセス許可が必要です。 分散型可用性グループが作成され、Azure portal に表示されるデプロイが完了状態になると、アクセス許可が取り消されます。 別の移行が同時に実行されている場合、拡張機能は、最後の分散型可用性グループが作成されるまでアクセス許可を取り消しません。

Managed Instance リンク移行を作成するアクションは、作成要求の期間中、次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server CREATE ENDPOINT
Server ALTER ANY ENDPOINT
Server CREATE CERTIFICATE
Database master IMPERSONATE ON USER::[dbo]

監視とカットオーバーの手順では、Managed Instance リンク移行の [完全なカットオーバー] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 カットオーバーが完了すると、拡張機能によってアクセス許可が取り消されます。

Managed Instance リンク移行のカットオーバーを完了するアクションは、要求全体の間、次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 最小特権が有効になっている場合、完全なカットオーバー アクションにより、カットオーバーの期間中、sysadmin アカウントにNT Service\SQLServerExtensionロールも付与されます。 このロールは、Azure SQL Managed Instance へのカットオーバーのために分散型可用性グループをフェールオーバーするために必要です。

監視とカットオーバーの手順では、Managed Instance リンク移行の [移行のキャンセル] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 移行が取り消された後、拡張機能はアクセス許可を取り消します。

Managed Instance リンクの移行を取り消すアクションは、キャンセル要求の期間中、次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 最小特権が有効になっている場合、キャンセル アクションは、取り消し要求の期間中、sysadmin アカウントにNT Service\SQLServerExtension ロールも付与します。 このロールは、分散型可用性グループを削除するときに必要です。

移行評価

移行評価 は既定で有効になっています。

この機能が無効になっている場合、他の有効な機能で必要な場合を除き、拡張機能は次のアクセス許可を取り消します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] SELECT sys.sqlexpressiondependencies
Database msdb EXECUTE dbo.agentdatetime
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.sysmailaccount
Database msdb SELECT dbo.sysmailprofile
Database msdb SELECT dbo.sysmailprofileaccount
Database msdb SELECT dbo.syssubsystems

Purview

Purview 機能は既定で無効になっています。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] EXECUTE
Database [すべてのデータベース] SELECT
Server CONNECT ANY DATABASE
Server VIEW ANY DATABASE

Just-In-Time SQL アクセス許可

一部の SQL アクセス許可は、特定のアクションを実行するために必要な時点でのみ割り当てられ、アクセス許可を必要とする操作が完了するとすぐに取り消されます。 失効の実行に失敗した場合、50 分ごとに実行されるバックグラウンド クリーンアップ ジョブは、古くなったアクセス許可を自動的に取り消します。

Just-In-Time アクセス許可がサービス アカウントに割り当てられます。

  • NT Service\SQLServerExtension 最小特権が有効な場合
  • 最小特権が無効になっている場合は、ローカル システム アカウント。

現在、次の機能では Just-In-Time アクセス許可が使用されています。

  • Managed Instance のリンク移行オプションを使用する場合のデータベースの移行。

追加の権限

  • 拡張機能サービスにアクセスし、自動回復を構成するためのサービス アカウントへのアクセス許可。
  • サービス アカウントに対するサービスとしてのログオン権限。