10

我正在使用 SSRS 2008 R2 和 Report Builder 3.0。我通过浏览器 (http://myserver/reports/) 设置了一个共享数据源,其中“凭据安全地存储在报表服务器中”以用于多个报表。通过浏览器测试连接有效。

现在,我启动了 Report Builder 3.0。我开始一个新的报告和“添加数据源”。我选择“使用共享连接”,浏览到服务器,然后选择上面的数据源。单击“测试连接”,一切正常。

然后我尝试“添加数据集”。在对话框中,我选择“使用嵌入在我的报告中的数据集”,我选择上面添加的数据源,输入 SQL 字符串并单击确定。出现“输入数据源凭据”。无论有效域(如域管理员帐户和其他)或 SQL Server(如“sa”帐户)凭据以及我使用的复选框如何排列,我都会收到“无法连接到数据源”。

共享数据源上的安全设置允许 BUILTIN\administrators 和 domain\administrator 所有角色。数据源确实有效,因为一些遗留的迁移报告运行良好。报表生成器说数据源连接正常。但是,我无法创建新报告,也无法修改现有报告。

有什么建议么?

4

3 回答 3

13

在经历了许多痛苦和哀号之后,报表生成器似乎使用报表服务器中定义中的信息,然后自行在本地运行查询,而不是通过报表服务。

我错误地认为,当我在设置数据集时执行刷新字段之类的操作时,报表生成器正在通过报表服务获取相关输出和/或元数据。情况似乎并非如此。

我已将共享数据源的连接字符串定义为Data Source=(local);Initial Catalog=<database name>. 现在,当您在 Reporting Services 的浏览器界面中时,这可以工作,但 Report Builder 似乎会读取连接字符串并将其用于自身。我的本地开发机器上的 Reporting Services 在运行这些报告的目标服务器上没有任何设置,所以我使用的任何东西都会失败

将连接字符串更改为Data Source=<server name>;Initial Catalog=<database name>而不是 localhost,可使报表生成器正常工作。(RB 仍然弹出“输入数据源凭据”。我使用了我的 Windows 凭据,这是目标服务器上的有效登录名。)

于 2011-11-11T16:12:40.047 回答
1

要完成您正在尝试的事情,听起来您需要使用 Windows 集成安全性。

根据 MSDN,存储的凭据不会传递给客户端应用程序。它们仅供报表服务器用于计划报表之类的事情。

http://msdn.microsoft.com/en-us/library/ms159736.aspx

我可以告诉你,提示“输入数据源凭据”是在寻找 SQL 身份验证,而不是域帐户。

于 2011-11-09T20:19:43.287 回答
1

杰出的问答。我真的很感谢你的仔细描述。我有同样的问题。就我而言,问题是我正在从通过 VPN 连接到我的家庭办公室的机器上访问 Report Builder。我猜是因为我不在家庭办公室的 Windows 网络之外,RB 无法对我进行身份验证。使用连接到办公室机器的远程桌面让我回避了这个问题。您和@RichShealer 的回答提醒我,从浏览器运行报告时,它们是由内部服务器机器提供的。运行桌面应用程序 RB 时并非如此。

于 2017-12-10T20:00:24.547 回答