无法在SSRS中创建与数据源错误(rsErrorOpeningConnection)的连接

时间:2013-01-29 17:46:16

标签: reporting-services ssrs-2008 database-connection

我正在努力将报告集成到浏览器中,我收到此错误:

An error has occurred during report processing. (rsProcessingAborted)
Cannot create a connection to data source 'dsFederatedSample_SurveyLevel_STG'. (rsErrorOpeningConnection)
For more information about this error navigate to the report server on the local server machine, or enable remote errors

enter image description here

这与SQL与Windows身份验证有关吗?

11 个答案:

答案 0 :(得分:15)

我要尝试的第一件事是获取有关错误的更多信息 - 这是一个非常通用的消息。

您可以根据错误消息启用远程错误并复制错误以获取更多信息:

Enable remote errors

或者检查报表服务器错误日志以查看记录的错误。

%programfiles%\Microsoft SQL Server\<SQL Server Instance>\Reporting Services\LogFiles\

下一步是将数据源用户连接到数据库,运行报告正在使用的任何代码/存储过程,并使用您在运行报告时使用的相同参数,并查看是否发生任何错误。

答案 1 :(得分:4)

在SQL Server 2008中,除上述两个选项外,还有第三个选项可通过SQL Server Management Studio进行此设置。

1.启动Management Studio并连接到Report Server实例。

2.右键单击ReportServer数据库并选择“属性”

3.单击高级

4.在EnableRemoteErrors中,选择True。

5.单击“确定”。

答案 2 :(得分:3)

我在Windows 8.1,SQL Server 2014 Developer Edition和Visual Studio 2013 Pro上遇到了同样的问题“无法创建与数据源的连接...用户登录失败..”。其他Stackoverflow社区成员提供的所有解决方案都不适用于我。

所以,我做了接下来的步骤(以管理员身份运行所有Windows应用程序):

  1. VS2013 SSRS:我在右窗格“解决方案资源管理器”中使用Windows身份验证(集成安全性)将我的数据源转换为共享数据源(.rds)。

  2. 原始(非共享)数据源(在左窗格“报告数据”中)获得“不使用凭证”。

  3. 在项目属性中,我将“部署”“覆盖数据源”设置为“真”并重新部署项目。

  4. enter image description here

    之后,我可以在没有进一步要求的情况下运行我的报告来输入凭证。所有共享数据源都部署在单独的目录“DataSources”中。

    enter image description here

    enter image description here

答案 3 :(得分:2)

问题是因为您的数据源设置不正确,请执行此操作以验证您的数据源连接,以便首先导航到报告服务配置管理器

点击开头 - &gt;全部开始 - &gt; Microsoft SQL Server - &gt;配置工具 - &gt; “报告服务配置管理器”

打开报表管理器URL,然后导航到“数据源”文件夹,请参见下图

然后通过右键单击数据库源创建数据源或配置已存在的数据源并选择&#34;管理&#34;如下所示

现在,在左侧菜单的属性选项卡上,使用您的连接字符串和用户名和密码填写数据源,然后单击测试连接,如果连接成功,则单击&#34;应用&#34;

在这种情况下导航到包含您的报告的文件夹&#34; SurveyLevelReport&#34;

最后将报告设置为您之前设置的数据源,然后单击“应用”

答案 4 :(得分:2)

如果在存储过程中使用空值,则需要将参数设置为接受空值。这对我有用。

答案 5 :(得分:1)

在我的案例中,我在一个报告中有许多不同的数据集到DB和Analysis Services Cube。看起来这些数据集相互阻塞并产生了这样的错误。 对我来说,帮助选项“在处理查询时使用单个事务”在CUBE数据源属性

答案 6 :(得分:1)

更多信息将非常有用。

当我遇到相同的错误消息时,我所要做的就是正确配置DataSource的凭据页面(我正在使用Report Builder 3)。如果您选择了默认值,则报表在报表生成器中可以正常工作,但在报表服务器上会失败。

您可以在此处查看此修补程序的更多详细信息: https://hodentekmsss.blogspot.com/2017/05/fix-for-rserroropeningconnection-in.html

答案 7 :(得分:1)

在我的情况下,这是因为我在本地开发报告时在我的数据源中使用了集成Windows身份验证,但是一旦他们进入报表管理器,身份验证就被破坏了,因为该站点不是&# 39;正确传递我的凭据。

  • 简单的解决方法是将用户名/密码硬编码到数据源中。
  • 更难的解决方法是通过报表管理器正确模拟/委派您的Windows凭据到基础数据源。

答案 8 :(得分:1)

我有一个类似的问题,作为新手,我花了一段时间才弄明白,但我了解到用户必须登录SSMS。我使用以下参数创建了登录:

  • 在服务器角色下 - 检查sysadmin
  • 在用户映射下 - 我选择了数据库和报表服务器。对于每个我检查过的datareader和datawriter
  • 在Securables下 - 我检查了任何允许用户连接到数据库并查看任何内容的内容
  • 我还发现其中一个现有登录已经检查了denydatareader和denydatawriter。一旦我删除了它就可以了。

我并不是说这是最好的方式,只是对我有用。希望这有帮助

答案 9 :(得分:0)

我遇到了完全相同的问题。 原因可能有所不同,但就我而言,在尝试了几种不同的操作(例如在数据源设置上更改连接字符串)后,我发现这是臭名昭著的“双跳”问题(更多信息here)。 >

要解决此问题,可以使用以下两个选项(根据超链接的响应之一):

  1. def showMenu(self,pos):
        contextMenu = QMenu(self)
        newAct = contextMenu.addAction("New")
        openAct = contextMenu.addAction("Open")
        quitAct = contextMenu.addAction("Quit")
        action = contextMenu.exec_(self.mapToGlobal(pos))
        if action == quitAct:
            self.close()
    
  2.   Change the Report Server service to run under a domain user account, and register a SPN for the account.
    

使用选项1,您需要选择“ Windows”凭据而不是数据库凭据,以克服身份验证时发生的双跳现象。

windows credentials

答案 10 :(得分:-2)

我通过确保您的数据源没有空格来解决此错误,例如:Datasource = JOHN;初始目录= AdventureWorks