SQL Server エージェント サービスのアカウントの選択

適用対象: SQL Server Azure SQL Managed Instance

重要

現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。

サービス開始アカウントにより、SQL Server エージェントを実行する Microsoft Windows アカウントとそのネットワーク アクセス許可が定義されます。 SQL Server エージェントは、指定されたユーザー アカウントで実行されます。 SQL Server 構成マネージャーを使用して、SQL Server エージェント サービスのアカウントを選択します。構成マネージャーでは、次のオプションから選択できます。

  • [ビルトイン アカウント] 。 次のビルトイン Windows サービス アカウントの一覧から選択できます。

    • [ローカル システム] アカウント。 このアカウントの名前は NT AUTHORITY\System です。 これは、すべてのローカル システム リソースに無制限にアクセスできる強力なアカウントです。 ローカル コンピューターで Windows 管理者グループに属しています。

    重要

    [ローカル システム アカウント] オプションは、旧バージョンとの互換性のためだけに用意されています。 ローカル システム アカウントには、SQL Server エージェントが必要としない権限があります。 ローカル システム アカウントとして SQL Server エージェントを実行するのは避けてください。 セキュリティを強化するには、次の「Windows ドメイン アカウントの権限」に示す権限のある Windows ドメイン アカウントを使用します。

  • [このアカウント] 。 SQL Server エージェント サービスを実行する Windows ドメイン アカウントを指定できます。 Windows 管理者グループのメンバーではない Windows ユーザー アカウントを選択することをお勧めします。 ただし、SQL Server エージェント サービス アカウントがローカル管理者グループのメンバーではない場合、マルチサーバー管理の使用には制限があります。 詳細については、この記事で後述する「サポートされるサービス アカウントの種類」を参照してください。

Windows ドメイン アカウントの権限

セキュリティを強化するには、 [このアカウント]を選択して、Windows ドメイン アカウントを指定します。 指定する Windows ドメイン アカウントは、次の権限を所持している必要があります。

  • すべてのバージョンの Windows で、サービスとしてログオンする権限 (SeServiceLogonRight)。

    Note

    SQL Server エージェント サービス アカウントは、ドメイン コントローラーの Pre-Windows 2000 Compatible Access グループに所属している必要があります。そうでない場合、Windows 管理者グループのメンバーではないドメイン ユーザーが所有するジョブが失敗します。

  • Windows サーバーでは、SQL Server エージェント プロキシをサポートできるように、SQL Server エージェント サービスを実行しているアカウントに次の権限が必要になります。

    • 走査チェックをバイパスする権限 (SeChangeNotifyPrivilege)
    • プロセス レベルのトークンを置き換える権限 (SeAssignPrimaryTokenPrivilege)
    • プロセスに対してメモリ クォータを調整する権限 (SeIncreaseQuotaPrivilege)
    • ネットワークからこのコンピューターにアクセスする権限 (SeNetworkLogonRight)

アカウントにプロキシのサポートに必要な権限がない場合は、sysadmin 固定サーバー ロールのメンバーのみがジョブを作成できます。

Windows Management Instrumentation (WMI) アラート通知を受信するには、SQL Server エージェントのサービス アカウントに、WMI イベントと ALTER ANY EVENT NOTIFICATION を含む名前空間へのアクセス許可が付与されている必要があります。

SQL Server ロールのメンバーシップ

既定では、SQL Server エージェント サービス アカウントは、sysadmin 固定サーバー ロールのメンバーである既定の SQL Server エージェント サービス SID (NT SERVICE\SQLSERVERAGENT) にマップされます。 マルチサーバー ジョブの処理を使用する場合は、アカウントはマスター サーバーの msdb データベースの TargetServersRole ロールのメンバーでもなければなりません。 マスター サーバー ウィザードを使用すると、登録処理の一環としてこのロールがサービス アカウントに自動的に追加されます。

サポートされるサービス アカウントの種類

以下の表に、SQL Server エージェント サービスで使用できる Windows アカウントの種類を示します。

サービス アカウントの種類 非クラスター化サーバー クラスター化サーバー ドメイン コントローラー (非クラスター化)
Microsoft Windows ドメイン アカウント (Windows 管理者グループのメンバー) サポートされています サポート対象 サポートされています
Windows ドメイン アカウント (管理者以外) サポートされています

このセクションの後の「制限事項 1」を参照してください。
サポートされています

このセクションの後の「制限事項 1」を参照してください。
サポートされています

このセクションの後の「制限事項 1」を参照してください。
ネットワーク サービス アカウント (NT AUTHORITY\NetworkService) サポートされています

このセクションで後述する制限 1、3、および 4 を参照してください。
サポート対象外 サポートされていません
ローカル ユーザー アカウント (管理者以外) サポートされています

このセクションの後の「制限事項 1」を参照してください。
サポートされていません 適用なし
[ローカル システム アカウント] (NT AUTHORITY\System) サポートされています

このセクションの後の「制限事項 2」を参照してください。
サポートされていません サポートされています

このセクションの後の「制限事項 2」を参照してください。
ローカル サービス アカウントNT AUTHORITY\LocalService サポート対象外 サポートされていません サポートされていません

制限事項 1: マルチサーバー管理での非管理者アカウントの使用

ターゲット サーバーをマスター サーバーに参加させると、エラー メッセージThe enlist operation failed.が表示されることがあります。

このエラーを解決するには、SQL Server と SQL Server エージェント サービスの両方を再起動します。 「SQL Server サービスの開始、停止、一時停止、再開、および再起動」をご覧ください。

制限事項 2: マルチサーバー管理でのローカル システム アカウントの使用

マルチサーバー管理は、SQL Server エージェント サービスがローカル システム アカウントで実行されるとき、同じコンピューター上にマスター サーバーとターゲット サーバーの両方が存在する場合にのみサポートされます。 この構成を使用している場合に、ターゲット サーバーをマスター サーバーに参加させると、次のメッセージが返されます。

Ensure the agent start-up account for <target_server_computer_name> has rights to log on as targetServer.

情報提供を目的としたこのメッセージは無視できます。 参加操作は、正常に完了します。 詳細については、「 マルチサーバー環境の作成」を参照してください。

制限事項 3: SQL Server ユーザーであるネットワーク サービス アカウントの使用

SQL Server エージェント サービスをネットワーク サービス アカウントで実行し、ネットワーク サービス アカウントに SQL Server ユーザーとして SQL Server インスタンスにログインするためのアクセス権が明示的に付与されている場合、SQL Server エージェントの起動に失敗する可能性があります。

これを解決するには、SQL Server が実行されているコンピューターを再起動します。 これは一度実行するだけで済みます。

制限事項 4: SQL Server Reporting Services が同じコンピューターで実行されている場合のネットワーク サービス アカウントの使用

SQL Server エージェント サービスをネットワーク サービス アカウントで実行し、同じコンピューターで Reporting Services も実行されている場合、SQL Server エージェントの起動に失敗する可能性があります。

これを解決するには、SQL Server を実行しているコンピューターを再起動してから、SQL Server と SQL Server エージェント サービスの両方を再起動します。 これは一度実行するだけで済みます。

一般的なタスク

SQL Server 構成マネージャーを使用して、オペレーティング システムを起動するときに、SQL Server エージェントを開始する必要があることを指定します。