0

我继承了一个使用 ReportViewer 的 ASP.NET 网站。

我遇到的问题是用于连接到报表服务器的凭据是具有管理员权限的 Windows 用户的凭据。我想将它们更改为具有所需最低凭据的 Windows 用户。

我的主数据库现在使用 Windows 身份验证,所以我已经有一个 Windows 用户,它可以访问主数据库的 db_datareader、db_datawriter。所以我给了相同的用户 db_datareader 对 ReportServer 数据库的权限。在 ReportServer 上使用的共享数据源中,我将“连接使用”设置为“运行报表的用户提供的凭据”,并将“连接到数据源时用作 Windows 凭据”设置为 true。

但是,当我将网站更改为使用该用户而不是管理员用户时,我得到“授予用户 'DomainName\UserName' 的权限不足以执行此操作。(rsAccessDenied)”

我需要授予该用户哪些其他权限才能使其正常工作?

4

2 回答 2

1

在我看来,好像用户在 Reporting Services 中没有权限访问相应的报告。您可能需要在 Reporting Services 中向该用户授予权限。您可以从 Report Manager 网站执行此操作。

我知道您授予了 Reporting Services 数据库的用户权限,但这与在 Reporting Services 中授予特定报表的权限不同。

于 2013-02-28T04:04:44.263 回答
0

好的,这就是我实际所做的-

使用报告管理器:

  1. 将系统用户角色分配给网站正在使用的 DomainName\UserName。查看系统级权限

  2. 将浏览器角色分配给同一用户。请参阅项目级权限。现在网站中的报表查看器可以工作,但它会提示用户输入凭据(我不想要)。

  3. 将共享数据源更改为“使用 Windows 集成安全性连接”。现在该报告在网站上运行。

然后作为 Sql Server 中的一个实验,我从 ReportServer 数据库中删除了用户。该网站仍然有效,所以我想从来不需要许可。

于 2013-02-28T10:02:33.393 回答