イベント ID 10016 エラーについて

胡 淑鳳
SQL Developer Support

 

※ 注意 : 本投稿は、SQL Server 2014 のインストールされている環境において、イベント ID 10016 のメッセージ中で示されているユーザーが NT SERVICE\SQLSERVERAGENT (もしくは NT SERVICE\SQLAGENT$インスタンス名) かつ AppID EE4171E6-C37E-4D04-AF4C-8617BC7D4914 である場合について述べています。それ以外のユーザーや AppID については、本投稿の内容で対応できるとは限りません。
イベント ID 10016 について弊社サポートへお問い合わせ頂く場合は、AppID を確認できるように、必ず「説明」(Description) のメッセージをお知らせ下さい。

 

 

SQL Server 2014環境では、メンテナンスプランの構築により作成されたSQL Server エージェント ジョブを実行する場合、システムイベントログに以下のようなエラーメッセージが記録される場合があります。

ログ種類:システムイベントソース:Microsoft-Windows-DistributedCOMイベントID:10016レベル:エラーユーザー:S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430説明:アプリケーション固有 のアクセス許可の設定では、CLSID {806835AE-FD04-4870-A1E8-D65535358293} および APPID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} のCOM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス LocalHost (LRPC 使用) のユーザー NT SERVICE\SQLSERVERAGENT SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) に与えることはできません。このセキュリティ アクセス許可は、コンポーネント サービス管理ツールを使って変更できます。

 

原因当該のエラーは、ユーザー NT SERVICE\SQLSERVERAGENT が [ローカルからのアクティブ化] というアクセス許可を AppID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} に対して持っていない場合に記録されます。

影響上述エラーはメンテナンスプランで SQL Server エージェント ジョブを介した処理を実行している際に記録されるエラーです。処理が成功している場合、影響はありませんが、権限設定の問題でジョブが失敗する場合もあります。ジョブの実行失敗についてはジョブ履歴をご確認ください。- 参考情報ジョブ履歴の表示 https://msdn.microsoft.com/ja-JP/library/ms181046(v=sql.120).aspx

対処方法 イベント 10016を対処するには、管理者権限を持っているユーザーで DCOM アプリケーションのレジストリ キーに対するアクセス権限を設定 (A) してから、「コンポーネント サービス管理ツール」 でアクセス権限を設定 (B) します。

以下、SQL Server 2014 の場合を例に手順を記載します。

A. COM アプリケーションのレジストリ キーのアクセス権限の設定1). 管理者権限を持っているユーザーでサーバーへログインします。

2). Windows Server 2008/R2 の場合は [スタート] ボタンから [ファイル名を指定して実行] をクリックします。(Windows Server 2012/R2 の場合はデスクトップにて、Windows ロゴ キーを押しながら R キーを押して、[ファイル名を指定して実行] ダイアログ ボックスを開きます。) regedit と入力し、 [OK] をクリックし、レジストリエディターを表示します。次のレジストリ キーを探します。

HKEY_CLASSES_ROOT\AppID\{EE4171E6-C37E-4D04-AF4C-8617BC7D4914}

3). 上記レジストリ キーの [編集] メニューの [アクセス許可] をクリックし、該当するレジストリキーのアクセス許可設定画面を表示します。

4). [セキュリティ] タブで [詳細設定] ボタンをクリックし、 [{EE4171E6-C37E-4D04-AF4C-8617BC7D4914} のセキュリティの詳細設定] 画面を表示します。

5). [所有者] の [変更] をクリックし、場所をクリック後、一覧の一番上のマシン名を選択し、 [選択するオブジェクト名を入力してください] の項目に Administrators を入力し、 [OK] をクリックします。

6).その後表示された画面にて [サブコンテナーとオブジェクトの所有者を置き換える] をチェックし、 [OK] ボタンをクリックします。

7). [グループ名またはユーザー名] ボックスで、 [Administrators] グループをクリックし、レジストリ キーの [フル コントロール] の [許可] チェックボックスをクリックします。

B. 「コンポーネント サービス管理ツール」にてアクセス権限の設定1). Windows Server 2008/R2 の場合は [スタート] ボタンから [ファイル名を指定して実行] をクリックします。(Windows Server 2012/R2 の場合はデスクトップにて、Windows ロゴ キーを押しながら R キーを押して、[ファイル名を指定して実行] ダイアログ ボックスを開きます。) dcomcnfg と入力し、 [OK] をクリックします。

2). 起動した [コンポーネント サービス] スナップインのツリービューで [コンポーネント サービス]-[コンピューター]-[マイコンピューター]-[DCOM の構成] を順番にクリックし展開します。

3). アプリケーション ID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} の右クリックメニューの [プロパティ] をクリックします。

4). 表示した画面の [セキュリティ] タブにて、 [起動とアクティブアクセス許可] の [編集] ボタンをクリックします。

5). [NT SERVICE\SQLSERVERAGENT] ユーザーを追加し、 [ローカルからの起動] と [ローカルからのアクティブ化] の [許可] チェックボックスをチェックし、 [OK] をクリックします。

発生契機に関してSQL Server サービスパック (SP) や累積更新プログラム (CU) 適用を契機として発生する可能性があります。このため、ID 10016のエラーが記録されないようレジストリ値の対処を実施した後でも、今後 SQL Server の SP や CU 適用により、再度 ID 10016のエラーが記録される可能性がありますので、この点ご留意ください。 その場合は、再度同様の手順の実行で対処が可能です。

以上となります。参考になりましたら幸いです。

(以下 2016/12/21 追加)


Errors Event ID 10016

SYMPTOMS

In Microsoft SQL Server 2014, when you run a agent job created by a maintenance plan, the following DCOM error is logged in the System log:

Source: Microsoft-Windows-DistributedCOM

Event ID: 10016

Level: Error

User: S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430

Description:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID

{806835AE-FD04-4870-A1E8-D65535358293} and APPID{EE4171E6-C37E-4D04-AF4C-8617BC7D4914}

to the user NT SERVICE\SQLSERVERAGENT SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) from address LocalHost (Using LRPC).

This security permission can be modified using the Component Services administrative tool.

Cause

Launch and Activation Permission to DCOM APPID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} was missing for the user (NT SERVICE\SQLSERVERAGENT).

Impact

This error could be recorded when a job created by a maintenance plan runs. It can be safely ignored if the job is executed successfully, but the job could fail due to permissions setting problem. For details of the failure, please refer to the following URL for job history.

Reference

View the Job History

https://msdn.microsoft.com/en-us/library/ms181046(v=sql.120).aspx

Resolution

 

A. Grant access to the com application registry key

  1. login as a user with administrator privileges.
  2. To open registry editor, click Run from Start menu for windows2008/R2 (click R key while pressing windows key for windows 2012/R2), type regedit, click OK. Scroll down and find HKEY_CLASSES_ROOT\AppID\{EE4171E6-C37E-4D04-AF4C-8617BC7D4914} key in the displayed register editor.
  3. Right click the key then select Permissions.
  4. Click Advanced button on Security tab to show the permissions edit dialog of Advanced Security Settings for {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} .
  5. To change the owner of the key, click Change link of owner, click Locations button, select the machine name on the top of the list, type Administrators in the Enter the object name to select box, click OK button.
  6. Check Replace owner on subcontainers and objects, click OK.
  7. To grant full control to Administrators, in Group or user names box, click Administrators, check Allow of Full Controll.

B. Grant access with DCOMCNFG configuration utility

  1. To open DCOMCNFG configuration utility, click Run from Start menu for windows2008/R2 (click R key while pressing windows key for windows 2012/R2), type dcomcnfg, click OK.
  2. In the Component Services snap-in, expand Component Services - Computers - My Computer - DCOM Config.
  3. Right click the application ID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914}, select Properties.
  4. In the displayed dialog box, select the Security tab, click Edit button of Launch and Activation Permissions.
  5. Add in the account NT SERVICE\SQLSERVERAGENT and check Allow for Local Launch and Local Activation.

More Information

The error is logged in the system log after a Service Pack(SP) or a Cumulative Update(CU) is applied. So even you have applied the procedure A or B to solve the problem, it could happen again after you apply a Service Pack(SP) or a Cumulative Update(CU). In that case, you may repeat the same steps mentioned in Resolution.