每次启动SQL Server代理作业时,我都会收到错误日志

时间:2016-06-09 13:53:00

标签: sql-server-agent sql-server-2016

每次启动Sql Server作业时,都会出现以下错误。 我正在使用SQL Server 2016.没有人知道如何修复它吗?

  

特定于应用程序的权限设置不会为具有CLSID的COM Server应用程序授予“本地激活”权限   {2DC39BD2-9CFF-405D-A2FE-D246C976278C}    和APPID   {DB336D8E-32E5-42B9-B14B-58AAA87CEB06}    从地址LocalHost(使用LRPC)运行在应用程序容器中的用户NT SERVICE \ SQLSERVERAGENT SID(S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430)不可用SID(不可用)。可以使用组件服务管理工具修改此安全权限。

3 个答案:

答案 0 :(得分:4)

微软已就此问题发表了一篇文章。 2014年和2012年的说明在同一页上。

请参阅https://msdn.microsoft.com/en-us/library/hh213130.aspx

  

在以前版本的SQL Server中,默认情况下,在安装SQL Server时,Users组中的所有用户都可以访问Integration Services服务。安装当前版本的SQL Server时,用户无权访问Integration Services服务。默认情况下,该服务是安全的。安装SQL Server后,管理员必须授予对服务的访问权限。

     

授予对Integration Services服务的访问权限:

     
      
  1. 运行Dcomcnfg.exe。 Dcomcnfg.exe提供了用于修改注册表中某些设置的用户界面。
  2.   
  3. 在“组件服务”对话框中,展开“组件服务”>电脑>我的电脑> DCOM配置节点。
  4.   
  5. 右键单击“Microsoft SQL Server Integration Services 13.0”,然后单击“属性”。
  6.   
  7. 在“安全”选项卡上,单击“启动和激活权限”区域中的“编辑”。
  8.   
  9. 添加用户并分配适当的权限,然后单击“确定”。
  10.   
  11. 对访问权限重复步骤4到5.
  12.   
  13. 重新启动SQL Server Management Studio。
  14.   
  15. 重新启动Integration Services服务。
  16.   

答案 1 :(得分:1)

错误:

  

特定于应用程序的权限设置不授予Local   具有CLSID的COM Server应用程序的激活权限   {2DC39BD2-9CFF-405D-A2FE-D246C976278C}和APPID   {DB336D8E-32E5-42B9-B14B-58AAA87CEB06}给用户NT   SERVICE \ SQLSERVERAGENT SID   (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430)来自   解决在应用程序容器中运行的LocalHost(使用LRPC)   不可用的SID(不可用)。这个安全权限可以   使用组件服务管理工具进行修改。

请在发生问题的服务器上执行以下步骤。 如果执行以下步骤,则应解决此问题。 如有任何疑虑,请告诉我。

  

步骤:

     
      
  1. 打开Regedit。
  2.   
  3. 转到HKEY_Classes_Root \ CLSID * CLSID *。注意: CLSID 代表事件查看器错误中显示的ID。在你的情况下,它   {2DC39BD2-9CFF-405D-A2FE-D246C976278C}。
  4.   
  5. 右键单击它然后选择权限。
  6.   
  7. 单击“高级”并将所有者更改为管理员。同时单击将显示在所有者行下方的框。
  8.   
  9. 完全控制。
  10.   
  11. 关闭标签,然后转到HKEY_LocalMachine \ Software \ Classes \ AppID * APPID *。注意: AppID 是   显示在事件查看器中的ID。在你的情况下它   {DB336D8E-32E5-42B9-B14B-58AAA87CEB06}。
  12.   
  13. 右键单击它然后选择权限。
  14.   
  15. 单击“高级”并将所有者更改为管理员。
  16.   
  17. 点击将显示在所有者行下方的框。
  18.   
  19. 单击“应用”并向管理员授予完全控制权。
  20.   
  21. 关闭所有标签页并转到管理工具。
  22.   
  23. 打开组件服务。
  24.   
  25. 单击“计算机”,单击“我的电脑”,然后单击“DCOM”。
  26.   
  27. 查找错误查看器中显示的相应服务。
  28.   
  29. 右键单击它,然后单击属性。
  30.   
  31. 单击安全选项卡,然后单击添加用户。添加SYSTEM然后申请。
  32.   
  33. 勾选激活本地框。
  34.   

答案 2 :(得分:0)

嗯,我不是组件服务安全方面的专家,但我是一个曾经看过几次类似错误并根据我在网上发现的建议修复它们的人。这假设您是计算机管理员组的成员。我们的想法是让管理员成为类和应用程序的所有者,这使您能够在组件服务中授予组件所需的启动和激活权限。

  • 以管理员身份运行RegEdit
  • 转到HKEY_CLASSES_ROOT \ CLSID
  • 找到错误消息中记录的CLSID,单击它并查看它是什么类。右键单击属性,看看谁拥有它。 (在我的情况下,这是一个Windows 10冻结问题,而CLSID是针对Runtime Broker的,它由TrustedInstaller拥有。根据我在网络上发现的建议,我点击了Advanced,并将所有者更改为Administrators。然后我给了管理员“完全控制“同时确保TrustedInstaller仍然具有完全控制权。
  • 接下来,转到HKEY_Local_Machine \ Software \ Classes \ AppID,然后从错误消息中单击AppID。注意它的名字。还可以在那里更改所有权/权限。
  • 接下来以管理员身份运行Component Cervices并深入到Console Root \ Component Services \ Computers \ My Computer \ DCOM Config。
  • 对于您在注册表中找到其名称的每个组件
    • 右键单击并选择“属性”
    • 点击“安全”标签
    • 在“启动和激活权限”下,点击“自定义”和“修改”
    • 以用户身份添加“LOCAL SERVICE”
    • 向LOCAL SERVICE授予“本地启动”和“本地激活”权限

祝你好运!