这是我和我的团队一直在互联网上寻求帮助的一个问题,但收效甚微。这听起来(在我们看来)是一种常见的情况,并且专注于最佳方法对许多人来说可能非常有用。
我们有一个 ASP.NET 应用程序,它使用 .NET 代码在相当精细的级别控制数据访问。也就是说,我们有一个用户表、一个角色表、安全表、工作流表,然后是很多业务数据表。最终用户可以高度配置对业务数据的访问,因为他们可以直接在应用程序中自行管理用户帐户和安全性。我们的 .NET C# 代码确定特定请求有权获得哪些数据(基于 Windows 登录)并提供服务。使用 SQL Server 登录名/角色没有相关的业务安全性。
那么,如何将 SSRS 实现到使用 .NET 代码以编程方式强制执行关系数据中定义的数据访问的系统中呢?
我们认为我们的解决方案类似于以下之一:
[SSRS 报告] > [数据源] > 控制数据访问的 .NET 代码 > [SQL Server]
...或...
[SSRS 报告] > 控制数据访问的 .NET 代码 > [数据源] > [SQL Server ]
如果这是正确的,那么我们缺少什么技术或概念来使这成为可能?
任何解决方案都应满足以下关键要求:
- 业务高级用户(报告创建者)应该能够使用 Report Builder 3.0 创建 SSRS 报告。他们仍然应该能够使用数据集设计视图和查询设计器处理业务数据和关系。
- 业务高级用户(报告创建者)不必在他们的报告或数据查询中实现数据访问。他们应该只需要担心报告设计。
- 访问报表的最终用户(报表使用者)将根据其特定的访问级别在报表中获得过滤数据(由 .NET 代码完成)。
肯定还有其他人在使用 .NET 代码来管理数据访问——在这种情况下,SSRS 不是一个选项吗?
谢谢!