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

Reporting services SQL Server Reporting Services数据源不断丢失数据库登录凭据,reporting-services,datasource,reportingservices-2005,Reporting Services,Datasource,Reportingservices 2005,在我的开发环境中,每次我重新启动windows(我必须每天至少重新启动一次),我的所有共享SSRS数据源都会丢失它们的凭据 目前,我已将它们设置为使用固定凭据登录数据库,但在重新启动时,所有数据源都会弹出为不使用凭据。当然,它只在开发环境中,我可以签出/更新数据源/签回,它会工作得很好。。。直到我重新启动 仅供参考,我已经使用这些共享数据源至少2年了,没有任何问题,但在过去一个月左右的时间里,这是一个每天重复出现的问题 帮助?我假设您讨论的是Visual Studio中报表服务器项目中的共享数据

在我的开发环境中,每次我重新启动windows(我必须每天至少重新启动一次),我的所有共享SSRS数据源都会丢失它们的凭据

目前,我已将它们设置为使用固定凭据登录数据库,但在重新启动时,所有数据源都会弹出为不使用凭据。当然,它只在开发环境中,我可以签出/更新数据源/签回,它会工作得很好。。。直到我重新启动

仅供参考,我已经使用这些共享数据源至少2年了,没有任何问题,但在过去一个月左右的时间里,这是一个每天重复出现的问题


帮助?

我假设您讨论的是Visual Studio中报表服务器项目中的共享数据源,而不是直接在Reporting Services上创建的数据源。后者,数据全部存储在设置SSR时指定的ReportServer数据库中

现在,对于VisualStudio中使用的.rds文件,如果在文本编辑器中打开该文件,请注意用户名和密码不会存储在该文件中。它实际上存储在.rptproj.user文件中。因此,请检查是否有人没有从源代码管理中删除.user文件(.user文件不应在源代码管理中,但在您的情况下…)

这是一个可以通过输入凭据、保存所有文件和退出VisualStudio来测试的场景。查找并删除.rptproj.user文件,然后再次打开报表服务器项目,查看凭据是否消失


解决方法是将“用户ID=User;密码=pass”添加为连接字符串的一部分。打开.rds时,连接字符串不会显示此部分,但凭据选项卡应具有正确的值。

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

猜测一下:SP3中可能有新的功能来检查连接凭据是否有效。如果它们无效,则清除它们


如果在SQL server启动之前完成此检查,则会出现问题。这可以解释为什么在机器重新启动时会清除它们。

我最近也遇到过同样的问题,但我无法将其连接到重新启动。当我从源代码管理中检查解决方案时似乎发生了——我们使用Team Foundation Server。在禁用该服务帐户无数次后,它不知何故恢复了自我并开始运行。我找到了这篇文章,并检查了我的项目文件夹,查找benson提到的rptproj.user文件,它的修改日期是我遇到问题的那一天,但创建日期接近我记忆中创建项目的日期,所以我以后会注意这一点


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

我知道你可能已经读过了,但这里有些东西可以帮助你


我会注意SSRS是如何安装的,服务运行的帐户是什么,以及域登录策略。

我工作的地方也遇到过同样的问题。我想看看是否有人有答案。你使用源代码安全吗?是的,我们使用源代码安全,但就像我上面说的,我们已经有2年多没有任何问题了,现在每天都有。令人沮丧,是的。在开始这样做之前,我们已经建立了大约半年。你们最近更新了什么吗?MSconnect上有一个关于这个问题的开放bug;您正在使用sql 2005/sp3吗?如果它影响到你,我建议你提高对这个错误的评级,它确实说微软正在调查它,所以会加快他们的速度。)完全不行。尝试添加新数据源时,它们会丢失凭据。我已将用户凭据添加到连接字符串中,但它被删除(尽管凭据随后会被传输到数据源的凭据区域)。您是否按照我的第一个建议检查了您的.rptproj.user文件?我在使用TFS源代码管理时遇到了这个正在消失的凭据问题。修改连接字符串以包含登录凭据仅在首次输入时有效;将项目用户文件签入源代码管理是解决此问题的真正解决方案,并允许随后从源代码管理签出解决方案/项目的任何人提供凭据。你们为什么一直谈论源代码管理?这跟这有什么关系?我们不进行数据源和数据源凭据的源代码管理,您可能也不应该这样做。当我将项目的用户文件添加到TFS源代码管理中时,我就解决了这个问题。显然,数据源的登录凭据包含在此文件中。这并不理想,因为将基于用户的信息置于源代码控制之下是违反惯例的,但它是有效的。我还看到,当项目需要共享调试设置时,需要此解决方案。