報告服務可能無法針對 Oracle 資料庫執行報告

適用於: SQL Server 2016SQL Server 2016 Enterprise CoreSQL Server 2016 Enterprise

徵狀


如果您使用 Microsoft SQL Server Reporting Services,報告服務訂閱可能無法針對 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. 找出 ReportServer 服務。
  13. 「 ReportServer 」 服務,以滑鼠右鍵按一下,然後按一下 重新啟動

報告服務 2005,問題不只會影響報告服務 Windows 服務中,透過訂閱的執行但也會影響一般執行的報表,透過 「 報告 」 服務 Web 服務。因此,「 報告服務 」 Windows 服務及 「 報告 」 服務 Web 服務的帳戶必須具有從先前的程序的 Oracle 安裝目錄的讀取和執行權限。注意若要確認設定的帳戶的 「 報告 」 服務 Web 服務,您可以開啟 RSReportServer.config 檔案。您會看到類似下列的資料:

< WebServiceAccount > NT 覽 < / WebServiceAccount >

狀態


Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。