The permissions granted to user 'domain\user' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'domain\user' are insufficient for performing this operation
While using SQL Server Reporting Services (SSRS) with SharePoint, there are plenty of steps to be considered. One of them is the permissions. From SharePoint's perspective, this article clarifies this point.
However, in my case the situation was kind of different. The SSRS reports were working fine on SharePoint, and suddenly they stopped! Whereas, if you open any report, you will get an error as follows:
The permissions granted to user 'domain\user' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'domain\user' are insufficient for performing this operation.
<detail><ErrorCode xmlns="https://www.microsoft.com/sql/reportingservices">rsAccessDenied</ErrorCode><HttpStatus xmlns="https://www.microsoft.com/sql/reportingservices">400</HttpStatus><Message xmlns="https://www.microsoft.com/sql/reportingservices">The permissions granted to user 'domain\user' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'domain\user' are insufficient for performing this operation.</Message><HelpLink xmlns="https://www.microsoft.com/sql/reportingservices">https://go.microsoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&EvtID=rsAccessDenied&ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=11.0.3000.0</HelpLink><ProductName xmlns="https://www.microsoft.com/sql/reportingservices">Microsoft SQL Server Reporting Services</ProductName><ProductVersion xmlns="https://www.microsoft.com/sql/reportingservices">11.0.3000.0</ProductVersion><ProductLocaleId xmlns="https://www.microsoft.com/sql/reportingservices">127</ProductLocaleId><OperatingSystem xmlns="https://www.microsoft.com/sql/reportingservices">OsIndependent</OperatingSystem><CountryLocaleId xmlns="https://www.microsoft.com/sql/reportingservices">1033</CountryLocaleId><MoreInformation xmlns="https://www.microsoft.com/sql/reportingservices"><Source>Microsoft.ReportingServices.SharePoint.Server</Source><Message msrs:ErrorCode="rsAccessDenied" msrs:HelpLink="https://go.microsoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&EvtID=rsAccessDenied&ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=11.0.3000.0" xmlns:msrs="https://www.microsoft.com/sql/reportingservices">The permissions granted to user 'domain\user' are insufficient for performing this operation.</Message></MoreInformation><Warnings xmlns="https://www.microsoft.com/sql/reportingservices" /></detail>
Checking The SharePoint ULS logs while reproducing this issue shows the below log records:
xx/xx/xxxx xx:xx:xx.xx w3wp.exe (ITSRVAMSPAPP2:0x0D60) 0x26B4 SharePoint Foundation General adyrv High Cannot find site lookup info for request Uri https://sp2013:32843/83dcde14cf16409295a8428c95c3573b/ReportStreaming.svc. ab231a9e-7b93-e018-3466-ecf670f397df
xx/xx/xxxx xx:xx:xx.xx w3wp.exe (ITSRVAMSPAPP2:0x0D60) 0x26B4 SharePoint Foundation General 8xfr Verbose PermissionMask check failed. asking for 0x00010000, have 0x00000000 ab231a9e-7b93-e018-3466-ecf670f397df
xx/xx/xxxx xx:xx:xx.xx w3wp.exe (ITSRVAMSPAPP2:0x0D60) 0x26B4 SharePoint Foundation General aix9j High SPRequest.GetSiteFlags: UserPrincipalName=, AppPrincipalName= ,bstrUrl=https://sp2013/sites/BI/PowerPivot Gallery/report.rdlx ab231a9e-7b93-e018-3466-ecf670f397df
xx/xx/xxxx xx:xx:xx.xx w3wp.exe (ITSRVAMSPAPP2:0x0D60) 0x26B4 SharePoint Foundation General ai1wu Medium System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)), StackTrace: at Microsoft.SharePoint.SPSite.get_ReadLocked() at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.<>c__DisplayClass4.<GetAdditionalToken>b__3() at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) at Microsoft.ReportingServices.SharePoint.Server.Utility.RunElevated(CodeToRunElevated code) at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.GetAdditionalToken(String wssUrl, String userName) at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.PopulateAdditionalToken(RSService service, String wssUrl) at Microsoft.ReportingServices.Library.StreamRequestHandler.ExecuteCommand() at Microsoft.ReportingServices.ServiceRuntime.ReportStreaming.<>c__DisplayClasse.<ExecuteStreamingOperation>b__d() at Microsoft.ReportingServices.ServiceRuntime.ReportStreaming.ExecuteStreamingOperation[TResult](Func`1 func) at Microsoft.ReportingServices.ServiceRuntime.StreamBodyWriter.OnWriteBodyContents(XmlDictionaryWriter writer) at System.ServiceModel.Security.SecurityAppliedMessage.OnWriteMessage(XmlDictionaryWriter writer) at System.ServiceModel.Channels.BinaryMessageEncoderFactory.BinaryMessageEncoder.WriteMessage(Message message, Stream stream) at System.ServiceModel.Channels.HttpOutput.WriteStreamedMessage(TimeSpan timeout) at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) at System.ServiceModel.Channels.HttpPipeline.EmptyHttpPipeline.SendReplyCore(Message message, TimeSpan timeout) at System.ServiceModel.Channels.HttpRequestContext.OnReply(Message message, TimeSpan timeout) at System.ServiceModel.Channels.RequestContextBase.Reply(Message message, TimeSpan timeout) at System.ServiceModel.Channels.SecurityChannelListener`1.SecurityRequestContext.OnReply(Message message, TimeSpan timeout) at System.ServiceModel.Channels.RequestContextBase.Reply(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Reply(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage9(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage8(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.SecurityChannelListener`1.ReceiveItemAndVerifySecurityAsyncResult`2.InnerTryReceiveCompletedCallback(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread) at System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread) at System.ServiceModel.Channels.SingletonChannelAcceptor`3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread) at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.CompleteParseAndEnqueue(IAsyncResult result) at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.HandleParseIncomingMessage(IAsyncResult result) at System.Runtime.AsyncResult.SyncContinue(IAsyncResult result) at System.ServiceModel.Channels.HttpPipeline.EmptyHttpPipeline.BeginProcessInboundRequest(ReplyChannelAcceptor replyChannelAcceptor, Action dequeuedCallback, AsyncCallback callback, Object state) at System.ServiceModel.Channels.HttpChannelListener`1.HttpContextReceivedAsyncResult`1.ProcessHttpContextAsync() at System.ServiceModel.Channels.HttpChannelListener`1.BeginHttpContextReceived(HttpRequestContext context, Action acceptorCallback, AsyncCallback callback, Object state) at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result) at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state) at System.ServiceModel.AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback callback, Object state) at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(Object state) at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) ab231a9e-7b93-e018-3466-ecf670f397df
xx/xx/xxxx xx:xx:xx.xx w3wp.exe (ITSRVAMSPAPP2:0x0D60) 0x26B4 SQL Server Reporting Services Report Server Catalog 00000 Verbose UnauthorizedAccessException in GetAdditionalToken : System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at Microsoft.SharePoint.SPGlobal.HandleUnauthorizedAccessException(UnauthorizedAccessException ex) at Microsoft.SharePoint.Library.SPRequest.GetSiteFlags(String bstrUrl) at Microsoft.SharePoint.SPSite.get_ReadLocked() at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.<>c__DisplayClass4.<GetAdditionalToken>b__3() ab231a9e-7b93-e018-3466-ecf670f397df
Although the above error has a fix as documented in the above article, but our fix was slightly different.
Solution:
In order to fix this issue, we opened the Central Administration site, and navigated to Application Management >> Manage Service Applications, then selected the SSRS service application. From the ribbon, clicked on Administrators icon. Hereafter, we found that the SSRS service account is already there and have Full Control permissions; so, we removed it and re-added it with Full Control permission which resolved the issue for good.