教程:对报表模型项应用安全筛选器

在 SQL Server Reporting Services 中,您可以通过模型项安全性向组或用户授予访问权限。假定您的数据库包含销售订单信息。除非您应用模型项安全性,否则拥有模型权限的任何人都可以查看此销售订单数据。利用模型项安全性,您可以有选择地给不同的用户和组公开模型中的项。通常,这与数据库中表和列的安全性相似。模型项安全性是使用报表管理器启用和配置的。

若要应用模型项安全性,必须将模型部署到报表服务器,然后在报表管理器的“安全性”页中,可以对模型内的实体和字段应用安全性。此外,还可以使用行级安全性保护由模型返回的数据。例如,您可以只让销售人员查看自己的销售订单。若要应用行级安全性,至少需要创建一个可以用作筛选器来限制数据的属性,再将它分配给 SecurityFilters 集合 属性或 DefaultSecurityFilter Object 属性。此属性必须为布尔型,而且 IsFilter 属性必须设置为 True。或者,如果此属性没有报表字段有用,则可以将 Hidden 属性设置为 True。

只要至少使用了行级安全性的一个属性,默认情况下将隐藏所有行。用户基于安全筛选器获取行的访问权限。您添加到 SecurityFilters 集合的每个属性,都将变成一种机制来授予对该筛选器公开的行的访问权限。如果存在安全筛选器,则不拥有其中任一筛选器权限的用户或组应该看不到任何行;但定义了默认的安全筛选器时除外。如果定义了默认的安全筛选器,则他们将仅看到默认的安全筛选器公开的行。

注意注意

默认情况下,管理员对整个模型没有访问权限。如果希望管理员对整个模型拥有访问权限,则您必须向其授予与其他用户或组相同的访问权限。

在本教程中,您将了解如何使用 SecurityFilters 集合对 AdventureWorks2008R2 报表模型中的实体应用行级安全性。然后,您将在报表管理器中应用必备的安全设置。

重要说明重要提示

必须先下载并安装 SQL Server 示例和示例数据库,然后才能查看或使用它们。有关详细信息,请参阅安装 SQL Server 示例和示例数据库的注意事项

要求

若要使用本教程,系统中必须安装有下列各项:

  • 在本机模式下运行的 Microsoft SQL Server Reporting Services。SQL Server Express 中不支持模型。有关详细信息,请参阅 SQL Server 2008 R2 各个版本支持的功能,其中包括:

    • Microsoft SQL Server.

    • Microsoft SQL Server Business Intelligence Development Studio.

    • 带有 AdventureWorks2008R2 数据库的 Microsoft SQL Server。

    • 带有 Adventure Works 报表模型示例的 Microsoft SQL Server。

  • 要运行报表生成器的系统上的 Microsoft .NET Framework 2.0。

您必须具有下列权限:

  • 若要部署并发布报表模型,您需要被指派为内容管理员或发布者角色。

  • 从 AdventureWorks2008R2 数据库检索数据的权限。

此外,还需要验证运行报表服务器的计算机是否在使用带有集成安全性的 Internet Information Services (IIS)。

请参阅

其他资源