SSRS - 无法确定作业所有者是否具有服务器访问权限[SQLSTATE 42000](错误15404))

时间:2009-12-15 04:28:53

标签: sql-server ssrs-2008

SQL Server Reporting Services,在SSRS中,似乎计划表从不会触发,但是查看SQL代理会显示与无法解析用户帐户相关的权限问题。

似乎SQL Agent不依赖于缓存或Windows神奇地工作的任何伏都教。

link text 修复列在这里...... 编辑 -

以上是我用来解决此问题的修复方法,是否有任何人找到了解决此问题的其他工作或解决方案?

默认情况下,SSRS生成的计划似乎作为此虚拟用户帐户运行。如何更改此默认值? SSRS是否以服务运行的用户身份创建作业?

感谢Remus

4 个答案:

答案 0 :(得分:7)

我遇到了同样的问题。以下是我修复它的方法。

问题描述 当设置SSRS报告订阅在给定时间运行时,我会等待时间过去,然后发现“上次运行”时间戳没有改变。我的订阅似乎没有运行。

相关的问题排查信息

  1. SSRS报告订阅作为报告服务器Web UI在幕后为您创建的SQL作业执行。

  2. 在查看为我的报告订阅创建的作业时,我发现它总是因错误而失败:

      

    工作失败了。无法确定作业0814588B-D590-4C45-A304-6086D5C1F559的所有者(domain \ userName)是否具有服务器访问权限(原因:无法获取有关Windows NT组/用户'domain \ userName'的信息,错误代码为0x5。[SQLSTATE 42000](错误15404))。

  3. 在Sql Server配置管理器中,我可以看到“SQL Server Reporting Services”服务已配置为使用AD用户帐户运行。

  4. 在Sql Server配置管理器中,我可以看到“SQL Server”服务已配置为使用本地Windows帐户运行。

  5. 正如@Remus Resanu所指出的那样,SQL错误15404在无法模拟EXECUTE AS上下文时引用异常。

  6. <强>解决方案 答对了! #4和#5是问题的关键。 SQL Server服务(本地Windows用户帐户)尝试在AD中对用户“domain \ userName”进行身份验证,但由于没有权限/权限来访问AD资源,因此无法执行此操作。

    我将SQL Server服务更改为AD用户帐户,重新启动SQL Server和SQL Server代理服务,重新运行SQL作业,并且blamo,成功!

答案 1 :(得分:2)

15404是无法模拟EXECUTE AS上下文时的例外情况。造成这些错误的原因很多。最常见的原因是:

  • 当SQL Server实例无法访问AD服务器,因为它作为本地用户或“本地服务”运行时(这将有错误代码0x5,ACCESS_DENIED
  • 当要求SQL Server模拟未知用户时,例如SQL Server不知道的域中的用户(这将包含错误代码0x54b,ERROR_NO_SUCH_DOMAIN

正确的解决方案总是依赖于错误代码,这是尝试获取模拟用户身份令牌时的操作系统错误:首先搜索System Error Codes表中的错误代码(或触发windbg,做一个环回非侵入式内核调试连接并且发送!错误,这是我更喜欢的原因更快......)。

所以,约翰......你真的有一个问题,或者只是发布了一段随机的部分信息吗?

答案 2 :(得分:0)

我做了两件事,现在可以了。

1)转到“ SQL Server配置”,更改“ SQL Server代理”-“登录为”以匹配上面的“ SQL Server”。

enter image description here

2)其次,在“ SQL Server代理”中打开“ Microsoft SQL Management Studio”,展开“作业”,您应该能够看到创建的作业。右键单击它,然后转到“属性”。 enter image description here

3)更改所有者,使其也与上面的“ SQL Server代理”匹配。 enter image description here

之后,我可以执行维护计划了。

答案 3 :(得分:0)

只需按照图片中的步骤进行操作

Just follow this steps in images