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

更新日期: 2006 年 12 月 12 日

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

若要应用模型项安全性,必须首先使用模型设计器创建至少一个筛选器或默认安全筛选器。若要使用此筛选器作为安全筛选器,请将其分配给 SecurityFilters 集合。此后,在 SQL Server Management Studio 中,可使用此安全筛选器授予对要保护的特定模型项的访问权限。

您也可以使用行级安全性来保护由模型返回的数据。例如,您可以只让销售人员查看自己的销售订单。若要应用行级安全性,至少需要创建一个可以用作筛选器来限制数据的属性,再将它分配给 SecurityFilters 集合 属性或 DefaultSecurityFilter Object 属性。此属性必须为布尔型,而且 IsFilter 属性必须设置为 True。或者,如果该属性不如报表字段有用,则可以将 Hidden 属性设置为 True

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

ms365305.note(zh-cn,SQL.90).gif注意:
默认情况下,管理员对整个模型没有访问权限。如果希望管理员对整个模型拥有访问权限,则您必须向其授予与其他用户或组相同的访问权限。

在本教程中,您将了解如何通过使用 SecurityFilters 集合对 Adventure Works 报表模型内的实体应用行级安全性。然后,您将在 Management Studio 中应用必备的安全设置。

ms365305.note(zh-cn,SQL.90).gif重要提示:
安装过程中,示例数据库不会自动安装,但是您可以随时安装这些示例数据库。有关安装示例的信息,请参阅安装示例

要求

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

  • 在本机模式下运行的 Microsoft SQL Server 2005 Reporting Services。SQL Server Express Edition 中不提供对模型的支持。有关详细信息,请参阅 SQL Server 2005 的各种版本所支持的功能,包括:
    • Microsoft SQL Server 2005 SP1 或更高版本。
    • Microsoft SQL Server 2005 Business Intelligence Development Studio。
    • Microsoft SQL Server 2005 Management Studio。
    • 带有 AdventureWorks 数据库的 Microsoft SQL Server 2005。
    • 带有 Adventure Works 报表模型示例的 Microsoft SQL Server 2005。
  • 将运行报表生成器的系统上的 Microsoft .NET Framework 2.0 版。

您必须具有下列权限:

  • 若要部署并发布报表模型,您需要具备内容管理员或发布者角色。
  • AdventureWorks 数据库中检索数据的权限。

此外,验证运行报表服务器的计算机是否在使用具有集成安全性的 Internet 信息服务 (IIS)。

任务

第 1 课:为本教程设置权限

第 2 课:为行级安全性创建属性

第 3 课:在 Management Studio 中启用行级别安全性

第 4 课:验证已应用的行级别安全更改

请参阅

概念

Reporting Services 教程

其他资源

安装示例
SQL Server Reporting Services 示例
示例数据库

帮助和信息

获取 SQL Server 2005 帮助