SharePoint列表数据源给出HTTP 401“未授权”错误

时间:2013-02-08 19:49:06

标签: list sharepoint ssrs-2008 reporting-services

我已经构建了一个使用SharePoint列表作为其数据源的报表。数据源设置为在SSRS中使用Windows身份验证(集成安全性)。它在SSRS / BIDS中运行得很好,但是当部署到Report Manager环境时,我收到错误:

  

报告处理期间发生错误。 (rsProcessingAborted)

     

数据集“ListData”的查询执行失败。 (rsErrorExecutingCommand)

     

访问指定的SharePoint列表时发生错误。连接字符串可能无效。验证连接字符串是否正确。 (rsSPDataProviderError)

     

请求失败,HTTP状态为401:未经授权。

我已将报告对象和数据源从BIDS部署到环境中。我检查了属性以确认在Report Manager端也设置了集成安全性,因此我不确定为什么它没有正确地将凭据传递给源。

任何想法/建议?

3 个答案:

答案 0 :(得分:8)

SSRS的服务帐户对您没有帮助。最好有一个特定的服务帐户来运行SSRS服务,但这不是用来进行身份验证的。使用报告服务配置工具在服务器上设置执行帐户也很方便,这有助于运行无人参与的报告,但这不是你的问题。

Kerberos是一个选项,是的,但是如果你还没有使用它,那么对于一个小问题来说这是一个很大的努力。

Sharepoint list datasource仅接受集成安全连接,因此您需要在数据源中执行的操作是将Windows用户存储为报表服务器中的凭据。

我通常创建一个名为Reportuser的用户(例如reportuser @ [domain] .com)。在您的域上创建此用户,确保它可以访问SharePoint。

在BIDS / visual studio的报告数据源属性中,在“凭据”选项卡下,单击“使用Windows身份验证(集成安全性)”旁边的单选按钮。 将数据源上载到报表管理器网站。 (你已经完成了这部分)。

导航到报告管理器网站,以及上传的数据源的属性。

在以“使用连接”开头的部分中:

选中“安全存储在报表服务器中的凭据”选项

输入这样的用户名和密码(其中domain将替换为您的网络域): reportuser@domain.com 密码

重要部分:勾选“连接到数据源时用作Windows凭据”

测试连接并且可以正常工作 - 我刚刚测试过它。

答案 1 :(得分:2)

检查以下情况:

  1. 使用Connect Using部分中的第二个选项作为数据源。检查附加图像。 Image

  2. 检查是否已正确配置所有web.config条目。您可以通过附加w3wp进程来跟踪此类错误。

答案 2 :(得分:0)

我遇到了同样的问题,发现由于SharePoint Designer和Visual Studio使用相同的凭据,我使用的帐户不正确。当我尝试部署我的报告时,我发现它失败了,因为它使用的是没有权限的用户。该用户不是我当前登录的用户。相反,它是我上次用于登录SharePoint Designer的那个。一旦我使用具有我想要的报告权限的用户登录SharePoint Designer,就可以使用Visual Studio正确登录到SSRS。这两个程序之间的窗口凭证绑定在一起。