SQL Server Reporting Services 数据源丢失数据库登录凭据

8
在我的开发环境中,每次我重新启动Windows(我必须每天这样做),所有共享的SSRS数据源都会失去其凭据。目前,我已经设置它们使用固定凭据登录数据库,但是在重启后,所有数据源都会转换为不使用凭据。尽管这只是在开发环境中出现的问题,但我可以检查/更新数据源/再次检查,并且它会正常工作...直到我再次重启。值得一提的是,我使用这些共享数据源至少已经2年了,没有任何问题,但在过去一个月左右,这是一个经常性的每日问题。请问如何解决?

2
我们在工作中遇到了同样的问题。我很想知道是否有人有答案。你使用源代码安全吗? - DForck42
是的,我们使用SourceSafe,但就像我上面说的,2年多来我们没有遇到任何问题,现在却每天都有。令人沮丧。 - Pulsehead
是的。我们的设置大约半年前就完成了,才开始出现这种情况。你们最近更新了什么吗? - DForck42
1
这个问题在MSconnect上有一个未解决的bug;您是否正在使用sql 2005 / sp3?如果它影响到您,我建议您提高该bug的评级,因为它确实表明了微软正在调查此问题,这将加快他们的速度。(http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=450753) - u07ch
4个回答

4
我假设您所说的是Visual Studio中报表服务器项目中的共享数据源,而不是直接在Reporting Services上创建的数据源。后者,数据存储在设置SSRS时指定的ReportServer数据库中。
现在,至于Visual Studio中使用的.rds文件,如果您在文本编辑器中打开该文件,请注意用户名和密码未存储在文件中。实际上,它存储在.rptproj.user文件中。因此,请检查是否有人从源代码控制中删除了.user文件(.user文件不应该在源代码控制中,但在您的情况下...)。
这种情况可以通过输入您的凭据、保存所有文件并退出Visual Studio进行测试。找到并删除.rptproj.user文件,然后再次打开您的报表服务器项目,看看凭据是否消失!
一种解决方法是将“User ID = user; Password = pass”作为连接字符串的一部分添加。当打开.rds时,连接字符串不会显示此部分,但凭据选项卡应该具有正确的值。

完全不起作用。尝试添加新数据源,它们会丢失凭据。我已经将用户凭据添加到连接字符串中,但它被删除了(虽然凭据随后被传输到数据源的凭据区域)。 - Pulsehead
你按照我第一个建议检查了.rptproj.user文件吗? - benson
在使用TFS源代码控制时,我遇到了凭据消失的问题。修改连接字符串以包含登录凭据只在首次输入时有效;将项目用户文件检入源代码控制是真正解决此问题并允许凭据存在于随后从源代码控制检出解决方案/项目的任何人手中的解决方案。 - PillowMetal
你们为什么一直在谈论源代码控制?这跟我们现在做的有什么关系吗?我们不对数据源或数据源凭据进行源代码控制,你们也最好不要这样做。 - pabrams

0

我最近遇到了相同的问题,但我无法将其与重新启动连接起来。 当我从源代码控制中检查解决方案时(我们使用Team Foundation Server),似乎发生了这种情况。 在多次禁用服务帐户后,它不知何故自己恢复了并开始表现出正常。 我看到了这篇文章,并检查了我的项目文件夹中的rptproj.user文件,正如benson所提到的,它的修改日期是我遇到问题的那一天,但创建日期接近我记得创建该项目的日期,因此我将来会注意到这一点。

有人对这个问题有了新的想法吗?


当我将项目的用户文件添加到TFS源代码控制中时,问题得到了解决。显然,数据源的登录凭据包含在此文件中。虽然将基于用户的信息放在源代码控制下违反了惯例,但这是可行的。我还看到过在需要为项目共享调试设置时需要使用此解决方案的情况。 - PillowMetal

0

0

这可能与您机器上的服务启动顺序有关。

只是猜测:可能在 SP3 中有新功能,检查连接凭据是否有效。如果它们无效,则会被清除。

如果在 SQL Server 启动之前执行此检查,则可能会出现问题。这就可以解释为什么在计算机重新启动时它们会被清除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接