如何解决此错误:授予用户'COMPUTERNAME \ ASPNET'的权限不足以执行此操作。 (rsAccessDenied)
时间:2020-03-06 14:45:24 来源:igfitidea点击:
我正在尝试将SSRS报告集成到我的网页中。
代码如下:
ReportViewer1.ProcessingMode = rocessingMode.Remote; ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/reportserver"); ReportViewer1.ServerReport.ReportPath = "/Report Project1/Reconciliation"; List<ReportParameter> paramList = new List<ReportParameter>(); paramList.Add(new ReportParameter("StartDate", startdate.ToString(), false)); paramList.Add(new ReportParameter("EndDate", enddate.ToString(), false)); this.ReportViewer1.ServerReport.SetParameters(paramList); ReportViewer1.Visible = true;
尝试运行此报告时收到此错误:
The permissions granted to user 'COMPUTERNAME\ASPNET' are insufficient for performing this operation. (rsAccessDenied)"} System.Exception {Microsoft.Reporting.WebForms.ReportServerException}
谁能告诉我我在做什么错?
解决方案
问题是ASP.NET辅助进程没有执行所需操作的权限。
在服务器(MACHINENAME \ ASPNET)上编辑此用户,并为其提供更多权限(可能需要写权限等)。
我们还需要将MACHINENAME \ ASPNET作为用户添加到SSRS正在使用的SQL数据库中。
我们需要授予Web应用访问报告的权限。转到报表管理器(http:// servername / reports /)。我通常只是将整个Web服务器的"浏览器"权限授予这些报告。
服务器的帐户名通常为Domain \ servername $。因此,如果服务器名称是" webserver01",而域是Acme,则将授予帐户Acme \ servername $浏览器权限。
我认为我们也可以通过在运行报告的Web应用程序上禁用匿名访问(在IIS中)来解决此问题,这样报告服务将使用用户凭据而不是ASPNET帐户进行身份验证。但这对我们来说可能不是一个可行的解决方案。
为了使Erikk的答案更清楚一点。
我们要设置为修复此错误的特定安全权限集(Reports Manager中至少存在另外两种类型的安全设置)在我们所在的报告文件夹的"属性"选项卡的"安全性"菜单选项中可用看着。
令人遗憾的是,不用说我们不应该完全授予Home文件夹的" Everyone"组的权限,因为该组将继承给所有其他项目和子文件夹,并打开一个巨大的安全漏洞。