我正在 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 就好像报表管理器中的设置就是您需要为用户/报表设置以访问数据源的全部设置一样。我曾尝试仅将报表管理器设置与数据源的两种设置一起使用,共享和嵌入都没有运气。
先感谢您