【发布时间】:2012-02-10 01:24:38
【问题描述】:
我正在 SQL Server 2008 R2 上开发 SQL Server Reporting Services (SSRS) 报表,并使用报表管理器作为演示和测试报表的方法。我正在寻找一种方法,允许同一域的用户连接到报表管理器并通过浏览器(不是 SharePoint)运行报表,而不会让用户对数据源有太多访问权限。我目前将每个用户列为与数据集和数据源关联的数据库的 db_owner。我想限制此访问,我尝试了 db_datareader,但此级别不允许用户运行报告并给用户此错误:“无法创建与数据源 'DBname' 的连接。 (rsErrorOpeningConnection)”。
我将用户添加到报告管理器站点的方法:我选择“站点设置”下的“安全”选项卡,然后选择“新角色分配”将用户添加为“系统用户”。然后我选择工具栏上的“文件夹设置”,然后再次选择“新角色分配”,将用户添加为“浏览器”。我已尝试将用户添加为“内容管理器”,但在涉及数据源时仍然出现相同的错误。
我将用户添加到数据源的方法:从服务器的“安全”选项卡中选择新登录名,将域\用户名添加到“登录名:”,使用 Windows 身份验证并将默认数据库从主数据库更改为是报告数据源。然后我选择“用户映射”并在作为数据源的数据库旁边打勾。在“数据库角色成员资格:DBname”部分中,我选择了 db_owner 并且已经选择了 public。我在下面包含了屏幕截图。 我的问题是我可以为 SSRS 和报告管理器使用什么“数据库角色成员资格”,它不会像 db_owner 那样广泛并且具有最佳安全性?我试过 db_datareader 但用户在运行报表时无法连接到数据源。
我已经研究过这个问题,但我没有发现任何细节可以接受将用户添加为我描述的 db_owner。 MSDN 的作用就好像报表管理器中的设置就是您需要为用户/报表设置以访问数据源的全部设置一样。我曾尝试仅将报表管理器设置与数据源的两种设置一起使用,共享和嵌入都没有运气。
提前谢谢你
【问题讨论】:
标签: reporting-services ssrs-2008 ssms sql-server-2008 reportmanager