报告服务可能无法运行 Oracle 数据库的报告

适用于: SQL Server 2016SQL Server 2016 Enterprise CoreSQL Server 2016 Enterprise

症状


如果您使用 Microsoft SQL Server 报表服务,报告服务订阅可能无法针对 Oracle 数据库中运行的任何报告。在这种情况下,您可能会收到一个System.DllNotFoundException异常。

此外,您还可能收到以下错误:

原因


发生此问题是因为某些 Oracle 文件和目录以便对 Oracle 数据库运行报表,必须具有附加安全设置。

解决方法


若要变通解决此问题,请添加权限报表服务服务帐户< OracleHome >为主体 \< Oracle 版本 >\bin 目录和到< OracleHome >\< Oracle 版本 >\network\admin 目录。例如,如果在报表服务服务帐户是网络服务,请执行以下步骤:

  1. 定位到 Oracle\Oracle 版本\bin 目录,右键单击目录,然后单击 属性
  2. 单击安全选项卡,然后单击 添加
  3. 输入对象名称来选择中,键入 网络服务,然后单击 确定
  4. 组或用户名称框中,单击 网络服务
  5. 网络服务许可的,单击以选中读取和执行复选框。
  6. 单击“高级”
  7. 单击允许可继承的权限从父对象传播到该对象和所有子对象。包括那些在此明确定义的项的框中,然后再单击 确定
  8. 单击“确定”
  9. 定位到 Oracle\Oracle 版本\network\admin 目录,右键单击目录,然后单击属性
  10. 重复步骤 2 到步骤 8。
  11. 单击开始指向 管理工具,然后单击 服务。
  12. 找到该报表服务器服务。
  13. 报表服务器服务中,用鼠标右键单击,然后单击 重新启动

报告服务 2005 年问题不仅影响报告服务窗口服务中,通过订阅执行而且也会影响报告通过报告服务 Web 服务常规执行。因此,报告 Windows 服务和报告服务 Web 服务的帐户必须具有读取和执行权限的 Oracle 安装目录,从以前的过程。注意:要验证配置的帐户为报告服务的 Web 服务,您可以打开 RSReportServer.config 文件。您会发现类似于以下的信息:

< WebServiceAccount > NT 机构 \ 网络服务 < / WebServiceAccount >

状态


Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。