適用対象:SQL Server
この記事では、Azure Arc によって有効になっている
Note
NT AUTHORITY\SYSTEM には、一覧表示されているディレクトリとレジストリ キーに対するアクセス許可を変更するためのアクセス許可が必要です。 このアクセスは、 NT AUTHORITY\SYSTEM が最小限の特権モードで NT SERVICE\SqlServerExtension アカウントに必要なアクセス権を付与できるようにするために必要です。
さらに、NT AUTHORITY\SYSTEM には、各SQL Server インスタンスに対する CONNECT SQL アクセス許可を持つアクティブなSQL Server ログインが必要です。 Deployer は、NT AUTHORITY\SYSTEM としてSQL Serverに接続して、この記事で説明するすべての SQL レベルのアクセス許可を構成します。 このログインが無効、削除、または拒否 CONNECT SQL 場合、Deployer は標準または最小特権モードで SQL アクセス許可を構成できません。 確認手順 の前提条件を 参照してください。
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
SqlServerAvailabilityGroups_CreateManagedInstanceLinkを持つユーザー SqlServerAvailabilityGroups_failoverMiLink、および Azure の SqlServerAvailabilityGroups_deleteMiLink アクセス許可は、移行プロセス中に Database migration ページでアクションを実行できます。このページでは、sysadmin 固定サーバー ロールを含む、拡張機能で使用されるアカウントのSQL Serverアクセス許可が昇格されます。
マネージド インスタンス リンクの移行を作成する
[データの移行] ステップで、Managed Instance リンク移行の [確認と作成] タブで [データ移行の開始] を選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 サービス アカウントには、分散型可用性グループ (AG) を構成するための昇格されたアクセス許可が必要です。 分散 AG が作成され、Azure ポータルに表示されるデプロイが完了状態になると、アクセス許可が取り消されます。 別の移行が同時に実行されている場合、拡張機能は、最後の分散 AG が作成されるまでアクセス許可を取り消しません。
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 リンク移行の完全なカットオーバー
監視とカットオーバーの手順では、Managed Instance リンク移行の [完全なカットオーバー] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 カットオーバーが完了すると、拡張機能によってアクセス許可が取り消されます。
Managed Instance リンクの移行のカットオーバーを完了するアクションは、完全な要求中に次のアクセス許可を取得します。
| オブジェクトの種類 | データベースまたはオブジェクト名 | Privilege |
|---|---|---|
| Server | CREATE AVAILABILITY GROUP |
|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | ALTER ANY DATABASE |
|
| Server | sysadmin1 |
1 最小権限が有効になっている場合、完全なカットオーバー アクションにより、カットオーバー中に sysadmin 固定サーバー ロールが NT SERVICE\SqlServerExtension アカウントに付与されます。 このロールは、Azure SQL Managed Instanceへのカットオーバーのために分散 AG をフェールオーバーするために必要です。
Managed Instance リンクの移行を取り消す
監視とカットオーバーの手順では、Managed Instance リンク移行の [移行のキャンセル] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 移行が取り消された後、拡張機能はアクセス許可を取り消します。
Managed Instance リンクの移行を取り消すアクションは、取り消し要求中に次のアクセス許可を取得します。
| オブジェクトの種類 | データベースまたはオブジェクト名 | Privilege |
|---|---|---|
| Server | ALTER ANY AVAILABILITY GROUP |
|
| Server | ALTER ANY DATABASE |
|
| Server | sysadmin1 |
1 最小権限が有効になっている場合、キャンセル アクションは、キャンセル要求中に sysadmin 固定サーバー ロールを NT SERVICE\SqlServerExtension アカウントに付与します。 このロールは、分散 AG を削除するときに必要です。
移行評価
移行評価 は既定で有効になっています。
この機能が無効になっている場合、他の有効な機能で必要な場合を除き、拡張機能は次のアクセス許可を取り消します。
| オブジェクトの種類 | データベースまたはオブジェクト名 | Privilege |
|---|---|---|
| Database | [すべてのデータベース] | SELECT sys.sql_expression_dependencies |
| Database | msdb |
EXECUTE dbo.agent_datetime |
| Database | msdb |
SELECT dbo.syscategories |
| Database | msdb |
SELECT dbo.sysjobhistory |
| Database | msdb |
SELECT dbo.sysjobs |
| Database | msdb |
SELECT dbo.sysjobsteps |
| Database | msdb |
SELECT dbo.sysmail_account |
| Database | msdb |
SELECT dbo.sysmail_profile |
| Database | msdb |
SELECT dbo.sysmail_profileaccount |
| 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 のリンク移行オプションを使用する場合のデータベースの移行。
追加の権限
サービス アカウントには、次のアクセス許可が必要です。
- 拡張機能サービスにアクセスし、自動回復を構成します。
- サービスとしてログオンします。