报表服务器无法验证加密数据的完整性

Posted

技术标签:

【中文标题】报表服务器无法验证加密数据的完整性【英文标题】:The report server was unable to validate the integrity of encrypted data 【发布时间】:2018-02-22 13:02:58 【问题描述】:

报表服务器无法验证数据库中加密数据的完整性。 (rsCannotValidateEncryptedData)。

无法恢复加密密钥,因此我删除了密钥并尝试使用 rskeymngt 重新生成,但没有成功。得到

'报告服务器无法验证加密的完整性 数据库中的数据。 (rsCannotValidateEncryptedData)'

访问http://localhost/ReportServer 和运行rskeymgmt -s 时出现该错误。

不确定下一步该采取什么措施。我有用户需要访问的报告。

【问题讨论】:

您使用的是什么版本的 SQL Server? Sql server 2016 在 rs 配置管理器中我更改了报表服务器服务帐户,它要求生成密钥。我现在收到 HTTP 错误 503。服务不可用。 我重新启动了服务,不再收到 503 错误。我可以看到报告,但它要求提供数据源凭据。我输入它们并得到 ConnectionString 属性尚未初始化。 【参考方案1】:

我进入 s-s-rS 配置管理器 > 加密密钥 > 点击删除。

当我这样做时,我得到了错误:

未能删除报表服务器数据库中的加密内容。请手动对数据库执行“DeleteEncryptedContent”存储过程。

为了修复它,我打开了 SQL Server Mgmt Studio > 展开 Databases > 右键单击​​ Report Server > 新查询并执行:

exec DeleteEncryptedContent

开始 > 运行 > services.msc > 重新启动服务并使其正常工作。

【讨论】:

【参考方案2】:

重新启动服务,现在一切正常。

所以看起来为了生成新密钥,我需要更新报表服务器服务帐户。之后重新启动 sql server 报告服务。

我不再有加密错误,但现在点击报告后要求我登录数据源。我再次输入凭据,但得到“尚未初始化 ConnectionString 属性。”

【讨论】:

【参考方案3】:

只需去报告服务管理器并删除删除加密内容或更改内容现在尝试再次连接即可。

【讨论】:

【参考方案4】:

如果你已经创建了,你只需要再次更改数据库,那么你的问题就会得到解决。

【讨论】:

【参考方案5】:

其中一个原因可能是加密密钥没有正确恢复。我将报告数据库从一台服务器迁移到另一台服务器。我恢复了加密密钥,起初一切似乎都很好,但提问者发布的错误此后不久就开始出现。另一个站点发布了一个查询来查看报告数据库中的键(以及如何删除的进一步说明),当我执行它时我注意到我的服务器的SymmetricKey 字段是NULL。我使用报表服务器配置管理器再次恢复了加密密钥,并注意到 SymmetricKeys 现在已填充。然后我就可以浏览到报表服务器了。

【讨论】:

以上是关于报表服务器无法验证加密数据的完整性的主要内容,如果未能解决你的问题,请参考以下文章

使用加密狗报表异常

Report Server Configuration Manager报表服务器配置管理器,连接新数据库-》报错:无法连接到服务器。

报表Reporting S而vice是 错误的解决

sqlserver2008r2升级到2012的问题

如何使用FastReport VCL 6将报表保存到云服务

报表查看器无法访问其他数据库服务器中的报表