我继承了一个使用ReportViewer的ASP.NET网站。
我遇到的问题是用于连接到报表服务器的凭据是具有管理员权限的Windows用户的凭据。我想将它们更改为具有所需最低凭据的Windows用户。
我的主数据库现在使用Windows身份验证,所以我已经有一个带有db_datareader的windows用户,db_datawriter访问主数据库。所以我给了ReportServer数据库相同的用户db_datareader权限。在ReportServer上使用的Shared DataSource中,我将“Connect using”设置为“运行报表的用户提供的凭据”,并将“连接到数据源时用作Windows凭据”设置为true。
但是,当我更改网站以使用该用户而不是管理员用户时,我得到“授予用户'DomainName \ UserName'的权限不足以执行此操作。(rsAccessDenied)”
我需要授予此用户哪些其他权限才能使其正常工作?
答案 0 :(得分:1)
听起来好像用户在Reporting Services中没有相应报告的权限。您可能需要在Reporting Services中向该用户授予权限。您可以从报告管理器网站上执行此操作。
我知道您授予用户对Reporting Services数据库的权限,但这与在Reporting Services中向特定报表授予权限不同。
答案 1 :(得分:0)
好的这就是我实际做的事情 -
使用报告管理器:
将系统用户角色分配给网站正在使用的DomainName \ UserName。请参阅system-level permission
为同一用户分配浏览器角色。见item-level permission。现在网站中的报表查看器可以正常工作,但会提示用户输入凭据(我不想要)。
将共享数据源更改为“使用Windows Integrated Security连接”。现在报告在网站上运行。
然后,作为Sql Server中的实验,我从ReportServer数据库中删除了用户。该网站仍然有效,所以我猜这个许可从来都不需要。