Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List SharePoint列表数据源提供HTTP 401“;“未经授权”;错误_List_Sharepoint_Ssrs 2008_Reporting Services - Fatal编程技术网

List SharePoint列表数据源提供HTTP 401“;“未经授权”;错误

List SharePoint列表数据源提供HTTP 401“;“未经授权”;错误,list,sharepoint,ssrs-2008,reporting-services,List,Sharepoint,Ssrs 2008,Reporting Services,我构建了一个报表,该报表使用SharePoint列表作为其数据源。数据源设置为在SSRS中使用Windows身份验证(集成安全)。它在SSRS/BIDS中运行良好,但部署到Report Manager环境时,我收到一个错误: 报表处理过程中发生错误。(rsProcessingAborted) 数据集“ListData”的查询执行失败。(rsErrorExecutingCommand) 访问指定的SharePoint列表时出错。连接字符串可能无效。验证连接字符串是否正确。(rsSPDataProv

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

报表处理过程中发生错误。(rsProcessingAborted)

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

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

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

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


有什么想法/建议吗?

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

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

Sharepoint列表数据源只接受集成的安全连接,因此您需要在数据源中将windows用户作为凭据存储在报表服务器中

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

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

导航到报表管理器网站,以及上载的数据源的属性

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

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

按如下方式输入用户名和密码(其中域替换为您网络的域): reportuser@domain.com 密码

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

测试连接是否正常-我刚刚测试了它。

检查这些情况:

  • 在数据源的Connect Using部分中使用第二个选项。检查附加图像。

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


  • 我遇到了同样的问题,发现我使用的帐户不正确,因为SharePoint Designer和Visual Studio使用了相同的凭据。当我尝试部署我的报告时,我注意到它失败了,因为它使用的是一个没有权限的用户。该用户不是我当前登录的用户。相反,它是我最后一次登录SharePoint Designer时使用的。一旦我使用同样拥有我想要的报告权限的用户登录SharePoint Designer,它就能够使用Visual Studio正确登录到SSRS。这两个程序之间的windows凭据绑定在一起。

    看起来像是双跳问题(),看起来就是这样。SharePoint源接受来自BIDS的凭据,但不接受从报表服务器第二次传递给它的Windows身份验证凭据。如何着手解决这个问题?我是否应该在SSRS中创建一个服务帐户以供SharePoint接受?请使用存储的凭据或KerberosThank。您是否可以向我解释“连接到数据源时用作Windows凭据”和“连接到数据源后模拟经过身份验证的用户”之间的区别,或者在仍然存储凭据的情况下取消选择这两个选项?谢谢您提供了一个很好的上下文解释。除了避免创建这些执行帐户之外,使用Kerberos还有什么好处吗?相反,执行帐户是否会带来任何真正的安全风险,值得通过Kerberos实现来减轻这些风险?我从未在一家商店工作过,那里的网络管理员对设置Kerberos有足够的兴趣。出于某种原因,这似乎是一件令人讨厌的事情。只要遵循良好的标准实践,我看不到任何安全风险。嗯,就目前而言,没有完美的安全感。