我使用 SSRS (2005) 创建了一个报表模型并发布到本地服务器。但是,当我尝试为使用报告生成器发布的模型运行报告时,我收到以下错误。
报告执行错误:授予用户的权限不足以执行此操作。(rsAccessDenied)
我使用 SSRS (2005) 创建了一个报表模型并发布到本地服务器。但是,当我尝试为使用报告生成器发布的模型运行报告时,我收到以下错误。
报告执行错误:授予用户的权限不足以执行此操作。(rsAccessDenied)
这是因为您运行报表生成器的用户没有权限,只需授予该用户或组运行报表生成器的权限即可。请访问这篇文章
或快捷方式:
我知道这是很久以前的事了,但是您(或任何其他新来者)可以通过以下方式解决此问题
右键单击 Microsoft BI -> 单击以管理员身份运行 -> 打开现有的 SSRS 报告或创建新的 SSRS 报告,然后在编译完成后部署您的报告,您将收到一个用于查看报告的 Web URL。复制该 URL 并粘贴到 Web 浏览器(以管理员身份运行),您将获得报告视图。您可以使用 Internet Explorer,这对于 Web 服务来说是必不可少的
如果是错误的意思,请原谅我,因为我确实喜欢这样,所以我只是写了。
确保您已使用 SQL Reporting Services 配置配置了对 URL http://localhost/reports的访问权限。去做这个:
只是为了让您知道本教程是在装有 SQL Server Reporting Services 2008 的 Windows 7 计算机上完成的。
参考文章:http ://techasp.blogspot.co.uk/2013/06/how-to-fix-reporting-services.html
您还可以确保应用程序池中的身份具有正确的权限。
转到 IIS 管理器
单击应用程序池
确定要部署报告的站点的应用程序池
检查身份是否设置为具有管理员权限的某个服务帐户或用户帐户
您可以通过停止池、右键单击它并选择高级设置来更改身份...
在流程模型下是身份字段
我使用了以下步骤,它对我有用。
打开 Reporting Services 配置管理器 -> 然后连接到报表服务器实例 -> 然后单击报表管理器 URL。
在 Report Manager URL 页面中,单击 Advanced 按钮 -> 然后在 Report Manager 的 Multiple Identities 中单击 Add。
在 Add a Report Manager HTTP URL 弹出框中,选择 Host Header 并输入: localhost 单击 OK 保存更改。
然后:
它在 Internet Explorer 和 Google Chrome 上运行良好,但不适用于 mozilla Firefox。
如果 Firefox 要求输入用户名和密码,我会提供它,但它不起作用。我是管理员,拥有完全的权利。
我已经完成了 1 个更改集“用户帐户控制设置”以从不通知。
如果您在从 Visual Studio 部署此报告时遇到此类异常,请执行以下操作:
我有 SQL2008 / Windows 2008 Enterprise,这是我必须做的以纠正rs.accessdenied
、404、401 和 503 错误:
在报告管理器中的站点设置>配置系统级角色定义>检查执行报告定义选项,然后创建系统用户组,在服务器属性中的连接到您的报告服务数据库中授予对该组的访问权限,然后添加一个组并允许访问权限为系统用户...它应该工作
以管理员身份打开 Internet Explorer。
打开报告网址http://machinename/reportservername
然后在“文件夹设置”中授予所需用户组的权限。
旧但相关的问题。我通过登录报告服务器解决了 2012 年的问题,并且:
不能说我对这个解决方案感到满意,但我需要一些行之有效的东西。希望这对其他人有帮助。
设置 SSRS 2016 后,我 RDP 进入服务器 (Windows Server 2012 R2),导航到报告 URL ( https://reports.fakeserver.net/Reports/browse/ ) 并创建了一个文件夹标题 FakeFolder;一切似乎都运行良好。然后我断开与服务器的连接,浏览到相同的 URL,以相同的用户身份登录,并遇到以下错误。
授予用户“fakeserver\mitchs”的权限不足以执行此操作。
很困惑,我几乎尝试了此页面上建议的所有解决方案,但在导航到 URL 并进行身份验证时,仍然无法在本地和外部创建相同的行为。然后我单击 FakeFolder 的省略号,单击管理,单击安全(在屏幕左侧),然后将自己添加为具有完全权限的用户。与服务器断开连接后,我浏览到https://reports.fakeserver.net/Reports/browse/FakeFolder,并且能够查看文件夹的内容而不会遇到权限错误。但是,当我单击主页时,我收到了权限错误。
就我的目的而言,这已经足够好了,因为其他任何人都不需要浏览到根 URL,所以每当我需要在 SSRS 中进行更改以首先连接到服务器然后浏览到报告 URL 时,我都会在心里记下.
问题:
错误 rsAccessDenied:授予用户“用户\用户”的权限不足以执行此操作。
解决方案:
单击“文件夹设置”>“新角色分配”,然后在“组或用户名文本框”中键入“用户\用户”。选中您希望用户拥有的角色复选框。
对我有用的是:
Open localhost/reports
Go to properties tab (SSRS 2008)
Security->New Role Assignment
Add DOMAIN/USERNAME or DOMAIN/USERGROUP
Check Report builder
报表可能想要访问 AD 用户(或 AD 组)访问权限不足的 DataSource 或 DataView。
确保检查以下 URL:
http://REPORTSERVERNAME/Reports/Pages/Folder.aspx?ItemPath=%2fDataSources
http://REPORTSERVERNAME/Reports/Pages/Folder.aspx?ItemPath=%2fDataSets
然后选择Folder Settings
(或适当的个人DataSource
或DataSet
)并选择Security
。用户组需要有Browser
权限。
我知道这是很久以前的事了,但可能对任何其他新人有帮助,
我决定在请求 SSRS 报告时传递用户名、密码和域,所以我创建了一个实现 IReportServerCredentials 的类。
public class ReportServerCredentials : IReportServerCredentials
{
#region Class Members
private string username;
private string password;
private string domain;
#endregion
#region Constructor
public ReportServerCredentials()
{}
public ReportServerCredentials(string username)
{
this.Username = username;
}
public ReportServerCredentials(string username, string password)
{
this.Username = username;
this.Password = password;
}
public ReportServerCredentials(string username, string password, string domain)
{
this.Username = username;
this.Password = password;
this.Domain = domain;
}
#endregion
#region Properties
public string Username
{
get { return this.username; }
set { this.username = value; }
}
public string Password
{
get { return this.password; }
set { this.password = value; }
}
public string Domain
{
get { return this.domain; }
set { this.domain = value; }
}
public WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get
{
return new NetworkCredential(Username, Password, Domain);
}
}
#endregion
bool IReportServerCredentials.GetFormsCredentials(out System.Net.Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = password = authority = null;
return false;
}
}
在调用 SSRS Reprots 时,输入以下代码
ReportViewer rptViewer = new ReportViewer();
string RptUserName = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUser"]);
string RptUserPassword = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUserPassword"]);
string RptUserDomain = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportUserDomain"]);
string SSRSReportURL = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportURL"]);
string SSRSReportFolder = Convert.ToString(ConfigurationManager.AppSettings["SSRSReportFolder"]);
IReportServerCredentials reportCredentials = new ReportServerCredentials(RptUserName, RptUserPassword, RptUserDomain);
rptViewer.ServerReport.ReportServerCredentials = reportCredentials;
rptViewer.ServerReport.ReportServerUrl = new Uri(SSRSReportURL);
SSRSReportUser、SSRSReportUserPassword、SSRSReportUserDomain、SSRSReportFolder 在 web.config 文件中定义。
这对我有用--转到报告管理器,检查站点设置-> 安全性-> 新角色分配-> 添加用户
-另外,转到报表管理器中的数据集 -> 您的报表数据集 -> 安全 -> 新角色分配 -> 添加具有所需角色的用户。
谢谢!
就像 Nasser 一样,我知道这是不久前的事,但我想为将来遇到此问题的任何人发布我的解决方案。
我设置了报表,以便它使用 SharePoint 上托管的数据连接库中的数据连接。我的问题是我没有“批准”数据连接,因此其他用户可以使用它。
要寻找的另一件事是确保该数据连接库的权限也允许读取选择用户。
希望这迟早会对某人有所帮助!
对于 SQL Reporting Services 2012 - SP1 和 SharePoint 2013。
我遇到了同样的问题:授予用户“[AppPoolAccount]”的权限不足以执行此操作。
我进入服务应用程序设置,单击密钥管理,然后单击更改密钥并让它重新生成密钥。
感谢分享。挣扎了 1.5 天后,发现 Report Server 配置了错误的域 IP。它配置了离线的备份域 IP。我在未列出域名的用户组配置中确定了这一点。更改 IP 并重新启动报告服务器。问题解决了。
尽管管理员组的现有成员身份,但以管理员身份运行 BIDS。
对我有用的是:
应该这样做,
祝你好运!