簡體   English   中英

SQL Server Reporting Services權限錯誤

[英]SQL Server Reporting Services Permission Error

所以我們有一個SSRS SQL 2008R2服務器(AServer),我們已經部署了一些報告。 有問題的報告在AServer上運行,並在BServer上運行存儲過程以獲取其數據集。 運行報表時,會出現以下錯誤

An error has occurred during report processing. (rsProcessingAborted)
Query execution failed for dataset 'ReportData'. (rsErrorExecutingCommand)
The EXECUTE permission was denied on the object 'pSomeStoredProc',
 database 'SomeDb',      schema 'dbo'.

我最大的問題是它沒有告訴我許可被拒絕的級別。 報告在AServer上運行的帳戶是否沒有憑據轉到BServer? 它可以進入BServer,但仍然沒有運行那個確切的sproc的權限? 實際查看報告的用戶的權限是否被委托給BServer(我看到類似的巫術發生在IIS上)?

我試過和失敗的地方:

我的出發點是檢查msdb中的SQL日志,以查看可能發生auth故障的位置。 在這些日志中苦苦掙扎時,沒有發現這樣的運氣。 我期待像“INTRA \\ sqlserviceaccount沒有足夠的權限來運行SomeDb.SomeProc”。

我的第二個目標是確保運行sql報告的帳戶也列在遠程服務器上。 事實並非如此,所以我在AD中找到它並添加它。 我還將它作為db_datareader和db_datawriter(<==不必要)添加到有問題的數據庫中。

第三個攻擊是確保RSExec角色位於遠程服務器上。 這也沒有用,除了我的服務器配置之外,我有點迷失在我實際做的事情上。

任何幫助是極大的贊賞。

讓我們從報表管理器(或共享數據集)向后工作:

  1. 查找共享數據集或報告所依賴的數據源。 此示例顯示共享數據集的數據源。

共享數據集的數據源

  1. 導航到該數據源的屬性。 找到憑據部分並查找配置的用戶名。 如果選擇了Windows integrated security ,則會從客戶端瀏覽器報表服務器數據庫傳遞用戶憑據。 以下示例顯示數據源憑據存儲在報表服務器中。

數據源屬性

  1. 回到SQL Server數據庫實例,找到映射了步驟2的登錄的數據庫和數據庫用戶。 授予此用戶對相關存儲過程的EXECUTE權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM