SQL Server 代理程序作业失败时,作业使用链接的服务器和作业拥有者不是系统管理员

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 811031
本文已归档。它按“原样”提供,并且不再更新。
症状
当您运行 SQL Server 代理作业使用链接的服务器的作业的所有者不是系统管理员帐户时可能会失败的作业并 SQL Server 显示以下错误消息:
不允许为 Windows NT 用户通过 SETUSER 激活的远程访问。[SQLSTATE 42000](错误 7410)。该步骤失败。
原因
您在运行不能由系统管理员帐户拥有一个 SQL Server 代理作业时 SQL Server 代理程序将运行 SETUSER 模拟该作业的所有者。

如果作业使用链接的服务器,该作业可能会失败,因为 SETUSER 执行后不允许远程访问。
替代方法
要变通解决此问题,请使用下列方法之一:

方法 1

请系统管理员的作业所有者。

方法 2

使用映射的链接服务器的安全上下文,并修改为 OSQL 以运行该作业。

若要链接的服务器的设置映射的安全上下文,请执行下列操作:
  1. 用鼠标右键单击该链接的服务器,然后单击 属性
  2. 单击 安全 选项卡。
  3. 选择下列选项之一。
    • 进行使用该登录名的当前安全上下文
    • 进行使用此安全上下文
若要修改作为 OSQL 运行作业,请执行下列操作:
  1. 右键单击该的作业,然后单击 属性
  2. 步骤 选项卡中单击您想要编辑,Step Name,然后单击 编辑
  3. 编辑作业步骤 对话框 常规 选项卡中,单击 操作系统命令 (CmdExec)类型 列表中。
  4. 命令 文本框中键入 osql –E –Q Exec storeProc
  5. 编辑作业步骤 对话框中单击 确定
  6. 属性 对话框中单击 确定
状态
此行为是设计使然。
更多信息
有关详细的信息,请访问下面的 Microsoft 网站:
如何重置 SQLAgentCmdExec 权限 (企业管理器)
http://msdn2.microsoft.com/en-us/library/aa176987(SQL.80).aspx
RPC setuser

警告:本文已自动翻译

属性

文章 ID:811031 - 上次审阅时间:12/08/2015 01:44:53 - 修订版本: 4.5

Microsoft SQL Server 2000 标准版, Microsoft SQL Server 7.0 标准版

  • kbnosurvey kbarchive kbmt kberrmsg kbprb KB811031 KbMtzh
反馈