安全性(报表生成器)

报表生成器是一类设计用来与 SQL Server Reporting Services 报表服务器配合使用的报表创作客户端应用程序。 可以将报表服务器配置为在本机模式中作为独立服务器运行,也可以将报表服务器配置为在 SharePoint 集成模式中运行以支持 SharePoint 站点上的报表。

在报表生成器中,可以创作报表、共享数据集和可重用的报表部件。 可以从报表服务器或 SharePoint 站点中编辑报表和添加共享数据源、共享数据集和共享报表部件。

注意

SQL Server Reporting Services 2019 之后的所有 SQL Server Reporting Services 版本,以及 Power BI Report Server September 2022 之后的所有 Power BI Report Server 版本已弃用报表部件。

若要创作、发布和使用报表以及与报表相关的项,则应了解安全性功能是如何与以下几个方面相关的:

  • 在其上发布报表的 Report Server 或 SharePoint 站点:报表服务器管理员或 SharePoint 站点管理员负责管理此服务。

  • 已发布的报表以及与报表相关的项:与报表相关的项包括嵌入数据源和共享数据源及其凭据、共享数据集、参数、报表部件和报表模型。 报表作者负责管理应用于这些项的安全性功能。 报表作者必须获得由报表服务器管理员或 SharePoint 站点管理员授予的足够权限,才能发布和共享项。

  • 报表使用的外部数据源:外部数据源的所有者负责管理这些功能。

  • 基于外部数据源的报表模型:模型设计器负责管理这些功能。

  • 交互式报表功能(如参数):报表作者负责管理这些功能。

查看本文中的信息,更好地了解如何使用安全性功能来帮助管理和保护报表以及与报表相关的项。

了解 Report Server 的安全性

发布报表和查看报表是需要特权的操作。 报表服务器管理员授予权限以确保只有得到授权的用户才能在下列某个类型的报表服务器上发布和查看报表:

  • 在本机模式中配置的报表服务器

    若要连接到或浏览到一个报表服务器,您必须具有有效的 URL,并且对该服务器具有足够的访问权限。

    若要在报表服务器上查看或发布项,需将应用于与报表相关的项和操作的权限集组织到角色中。 报表服务器管理员为您分配了一个或多个角色。 例如,利用预定义的角色浏览器,可以查看报表、文件夹、模型和资源。

    如果无法连接到或浏览到 Report Server,请与报表服务器管理员联系。 有关详细信息,请参阅 Reporting Services 安全性和保护

  • 在 SharePoint 集成模式中配置的报表服务器

    若要连接到与 Report Server 集成的 SharePoint 站点,必须具有 SharePoint 站点或子站点的有效 URL。 还必须具有对其的足够访问权限。

    通过 SharePoint 安全策略来授予与报表相关的项和操作的访问权限,这些策略可映射拥有与项相关的某个权限级别的用户帐户或组帐户。

    如果无法连接到或浏览到 SharePoint 站点或子站点,请与 SharePoint 站点管理员联系。

了解已发布报表以及与报表相关的项的安全性

报表服务器管理员负责管理报表以及与报表相关的项的安全性。 与报表相关的项包括嵌入数据源和共享数据源(包括凭据、共享数据集、参数、报表部件和模型)。

在报表服务器或 SharePoint 站点上,可以单独保护报表以及与报表相关的项和操作。 通过安全策略来授予项和操作的访问权限,这些策略可映射拥有与项相关的某个权限级别的用户帐户或组帐户。 容器中的项会继承容器的权限,以降低维护大量策略所带来的复杂性和开销。 例如,如果用户具有某个文件夹的特定“查看报表”权限,则用户具有该文件夹中的项的“查看报表”权限。

可以使用项级别安全性来覆盖项或文件夹的权限。 在应用项级别安全性时,从父容器进行的权限继承将不再适用于项。 如果对文件夹应用项级别安全性,则嵌套文件夹将继承相同的权限。

如果无法浏览并找到其他人已为你发布的项,则你对项或文件夹所具有的权限可能有问题。

可以让其他人浏览并查找所发布的要共享的项目。 为此,你必须与报表服务器管理员协作,设置用于为你的用户提供访问权的文件夹组织。 创作报表和运行已发布的报表时必须具有访问权。

有关详细信息,请参阅以下文章:

报表部件的更新通知

报表部件将发布到报表服务器以供其他人进行共享。 根据设计来指定将报表部件发布到的位置。

将报表部件包含在其报表中的用户可以启用更新功能。 在启用此功能后,当报表服务器上的报表部件发生更改时,用户会收到通知。

如果报表部件是从原始位置移动的,则更新通知将包含报表部件的当前位置和先前位置。 仅接受来自受信任位置的更新。

有关详细信息,请参阅报表部件 (Report Builder)

了解报表数据和外部数据源的安全性

若要在报表中访问来自每个外部数据源的数据,请在报表中创建嵌入数据源或添加对共享数据源或共享数据集的引用。

对于每个外部数据源,您必须提供足以用来访问源和基础数据的凭据。 数据源所有者将指定用于提供此访问的凭据的类型。

凭证不保存在报表定义中。 将从 Report Server 或 SharePoint 站点和报表创作客户端上的报表中独立管理这些凭证。

在报表设计时,凭据用于运行数据集查询和预览报表。 在运行时,凭据用于运行报表和缓存查询结果。 也可以单独缓存数据集查询结果。 设计时凭据和运行时凭据可能不同。 有关详细信息,请参阅在报表生成器中指定凭据

有关保护数据安全的详细信息,请参阅 SQL Server 数据库引擎和 Azure SQL 数据库的安全中心

有关数据源的详细信息,请参阅创建数据连接字符串 - Report Builder

了解模型和安全筛选器

从基于外部数据的报表模型检索数据时,可以在模型中应用安全筛选器。 此功能是保护数据安全的好方法,这样每个运行报表的用户都只能看到他们有权限访问的数据。

报表参数不能提供行级安全性;它们并不防止用户或用户组查看特定的数据行。 若要对报表中显示的数据应用安全性,必须使用安全筛选器或模型项安全性。

了解为报表交互式功能创作的安全性

报表经常会使用参数,使用户能够以交互方式自定义其报表视图。 使用以下提示可帮助设计遵循良好实践的报表:

  • 除非你提供了有效的值,否则不要使用基于查询参数且类型为 Text 的参数。 可用值列表可帮助用户只选择有效值。 如果不使用可用值列表,则无法限制用户可输入的值。

  • 不要使用全局 [&UserID] 来保护私有数据。 当此值作为报表参数时,可以使用 URL 访问语法在报表 URL 中指定此值。 在共享数据集的表达式中使用此值可防止数据集被缓存。 有关详细信息,请参阅 URL 访问参数引用

在将项发布到报表服务器后,报表服务器管理员可通过分配基于角色的安全性或文件夹和项级别安全性来帮助保护这些项。 有关详细信息,请参阅保护报表和资源