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

適用対象:SQL ServerAzure 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 固定サーバー ロールのメンバーのみがジョブを作成できます。

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: マルチサーバー管理での非管理者アカウントの使用

ターゲット サーバーをマスター サーバーに参加させると、"参加操作に失敗しました" というエラー メッセージが表示されることがあります。

このエラーを解決するには、SQL Server と SQL Server エージェント サービスの両方を再起動します。 詳細については、「 データベース エンジン、SQL Server エージェント、SQL Server Browser サービスの開始、停止、一時停止、再開、および再起動 」を参照してください。

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

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

"<target_server_computer_name> のエージェント開始アカウントに対象サーバーとしてのログオン権限があることを確認します"

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

制限事項 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 エージェントのメール プロファイルを指定する

Note

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