10

I am getting the following error when trying to deploy my SSRS reports on our SQL 2008 R2 Server "The report server cannot decrypt the symmetric key used to access sensitive or encrypted data in a report server database...". Most of the solutions on the Web suggest to delete the encryption keys, then reconfigure the datasources. I am still a beginner in SSRS, Is there another solution to fix this issue, Thanks

4

3 回答 3

20

检查此链接Microsoft 支持链接后,这似乎是 SSRS 报告中的已知问题。似乎修复它的唯一方法是删除加密密钥。

  1. 打开 Reporting Services 配置工具(程序 -> Microsoft SQL Server 2008 R2 -> 配置工具 -> Reporting Services 配置管理器)
  2. 转到加密密钥
  3. 单击删除。

这解决了我的问题

于 2013-10-01T09:48:33.807 回答
2

从 services.msc 更改 SQL Server Reporting Services 帐户后,我使用 Microsoft Dynamics CRM 2016 Reporting Extensions Setup 遇到了这个问题。这是因为 Microsoft Dynamics CRM 2016 Reporting Extensions 设置需要非本地服务帐户。 https://technet.microsoft.com/en-us/library/hh699754.aspx这里的关键触发因素可能是 Haasan 问题中看到的根本原因,是在未备份加密密钥的情况下更改了 SQL Server Reporting Services 服务帐户。虽然他对删除加密密钥所做的工作有效,但它有丢失加密信息的缺点,如果可能,您应该使用以下步骤恢复为原始服务帐户用户,然后使用下面和中记录的步骤更改服务帐户参考文章。

运行 Microsoft Dynamics CRM Reporting Extensions 的 Microsoft SQL Server Reporting Services 实例的身份帐户不能是本地系统或虚拟帐户。这是 Microsoft Dynamics CRM 报告工作所必需的,因为必须将身份帐户添加到 Microsoft Dynamics CRM 使用的 PrivReportingGroup Active Directory 安全组。

这里的长篇故事是,当更改 SQL Server Reporting Services 帐户时,您需要从SQL Server Services Reporting Manager执行此操作,因为这将提示您备份 SQL Server Reporting Services 使用的对称加密密钥并使用新的服务帐户用户。

报表服务器服务使用对称密钥访问报表服务器数据库中的加密数据。此对称密钥使用与计算机和用于运行报表服务器服务的用户帐户相对应的非对称公钥进行加密。当您更改用于运行报表服务器服务的用户帐户时,报表服务器无法使用非对称公钥解密对称密钥。因此,报表服务器服务无法使用对称密钥访问报表服务器数据库中的数据。

从 SQL Server Reporting Services 报告管理器更改服务帐户时,这将执行以下操作:

自动将新帐户添加到在本地计算机上创建的报表服务器组。此组在保护 Reporting Services 文件的访问控制列表 (ACL) 中指定。自动更新用于承载报表服务器数据库的 SQL Server 数据库引擎实例的登录权限。新帐户将添加到 RSExecRole。旧帐户的数据库登录不会自动删除。请务必删除不再使用的帐户。有关详细信息,请参阅 SQL Server 联机丛书中的管理报表服务器数据库(SSRS 本机模式)。仅当您首先将报表服务器数据库连接配置为使用服务帐户时,才会向新服务帐户授予数据库权限。如果您将报表服务器数据库连接配置为使用域用户帐户或 SQL Server 数据库登录,则连接信息不受服务帐户更新的影响。自动更新加密密钥以包含新帐户的配置文件信息。

如果像我的场景一样,您碰巧知道以前的服务帐户用户是什么,解决方法是将 SQL Server Report Service 帐户用户更改回最初指定的帐户,然后使用 SQL Server Reporting Services Reporting Manager 更改帐户并确保您备份加密密钥,因为该过程会在设置新服务帐户用户时自动恢复加密密钥。

参考: https ://msdn.microsoft.com/en-us/library/ms160340.aspx - 配置报表服务器服务帐户(SSRS 配置管理器)

https://support.microsoft.com/en-us/kb/842421 - 在更改用于运行报表服务器的用户帐户后重新启动报表服务器服务时,您会在 Reporting Services 跟踪日志中收到错误消息服务(这是一篇旧的知识库文章,但一般问题和解决方案仍然适用于较新版本的 SQL Reporting Services)

于 2016-03-11T23:25:31.703 回答
1

Hopefully this might save someone some time if deleting the key is not an option.

I ran into this issue after moving the ReportServer and ReportServerTempDB from a working server to a different environment running Reporting Services. Deleting the encryption keys was not an option and I knew the password used to create the encryption key, so I took a backup of the key from the working server and restored it using Reporting Services Configuration Manager on the new environment. Refreshed the page and the error went away.

于 2015-03-10T18:09:59.720 回答