在数据行级别限制访问权限

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop

通过将工作簿发布到 Tableau Server 或 Tableau Online 以与其他人共享工作簿时,默认情况下,所有有权访问工作簿的用户都可以查看视图中显示的所有数据。通过应用某种类型的筛选器,以允许您指定任何登录到服务器的给定人员可以在视图中查看的数据“行”,您可以覆盖此行为。

这种在行级别保护数据安全的方法适用于包含实时连接的数据源,以及其表以多个表形式存储的数据提取数据源。有关使用多个表存储数据提取数据的详细信息,请参见决定应以何种方式存储数据提取数据

注意:有关可用于在 Tableau 中实现行级安全性的替代方法的信息,请参见 Tableau Server 帮助中的 Tableau 中的行级安全性选项概述(链接在新窗口中打开)

若要了解相关信息,请参见白皮书
Best Practices for Row Level Security with Entitlement Tables(适用于具有权利表的行级别安全性的最佳做法)(链接在新窗口中打开)或博客 Tableau and Behold 上的 How to Set Up Your Database for Row Level Security in Tableau(如何在 Tableau 中为行级安全性设置数据库)(链接在新窗口中打开)

基于用户的筛选的工作原理

假设您为不同地理区域内若干年中的一组产品创建了季度销售报告。

当您发布此报告时,您希望允许每个区域经理仅查看与其区域相关的数据。您可以应用用户筛选器,以根据用户的特征(例如其角色)限制对数据的访问,而不是为每个经理创建单独的视图。

以这种方式限制对数据的访问称为行级安全性 (RLS)。Tableau 提供以下行级安全性方法:

  • 创建用户筛选器并将用户手动映射到值

    这种方法较为方便,但维护费用高并且安全性可能不确定。必须按工作簿完成此方法,并且您必须更新筛选器并在用户群发生变化时重新发布数据源。

  • 使用数据中的安全字段创建动态筛选器

    使用此方法,您可以创建计算字段,以自动执行将用户映射到数据值这一过程。此方法要求基础数据包括要用于筛选的安全信息。

    执行此操作的最常见的方法是使用包含此信息的引用(“look-up”、“entitlements”或“security”)表。举例来说,如果要筛选视图以便只有主管才能看到它,则基础数据必须设置为包括用户名并指定每个用户的角色。

    由于筛选是在数据级别定义的,并由计算字段自动进行,因此此方法比将用户手动映射到数据值更安全。

向数据源添加用户筛选器

上一节中的两种方法介绍了向嵌入在工作簿中的数据添加筛选器的方法。如果多个工作簿连接到相同的数据,而不是在每个工作簿上使用筛选器,则可以筛选数据源,然后在发布数据源后将工作簿连接到该数据源。

连接到筛选的数据源的工作簿仅显示允许登录到服务器的用户查看的数据。此外,所有连接的工作簿都会在发生数据刷新时显示数据刷新。

具有用户筛选器的数据提取与实时连接

通常,在使用上述方法之一时,与包含使用实时连接的数据源的 RLS 相比,包含数据提取的 RLS 的创建速度更快,并且性能更佳。

针对包含数据提取数据源的 RLS 的要求

如前所述,针对使用包含数据提取的 RLS 的第一个要求是,数据提取中的数据应使用多个物理表存储。通过执行决定应以何种方式存储数据提取数据中的步骤,您可以将数据提取配置为使用多个物理表存储其数据。

除了上面的要求外,如果打算使用包含数据提取的 RLS,还有一些额外的事项需要注意。由于使用多个表存储的数据提取数据不支持数据提取筛选器和某些其他可帮助减少数据提取中的数据量的功能,因此,您必须考虑使用以下建议之一:

  • 使用自定义 SQL 连接到数据

  • 连接到已经有适当筛选级别的数据库视图

有关这些建议的详细信息,请参见使用“物理表”选项时的替代筛选建议

针对包含数据提取数据源的 RLS 的建议做法

为了高效地执行包含数据提取的 RLS,Tableau 建议将数据提取中的表(或者数据库视图或自定义 SQL 查询)的数量保持为两个。换句话说,Tableau 建议数据提取中的表由以下类型的表组成:

  • 数据表 — 这是包含要显示的所有数据的“object”表。

  • 引用表 — 这是包含用户信息和用户所属的安全组的“look-up”或“entitlements”表。

通过将数据提取中的表减少到只包含这两个表,您可以确保 Tableau 仅必须在这两个表之间执行联接,因此可避免出现任何数据重复情况或“联接爆炸”。

关于 RLS 和以前版本的 Tableau

在以前,Tableau 由于行重复和性能方面的复杂性而无法支持包含数据提取的 RLS 工作流。归根结底,这些复杂情况是其数据只能以单个表形式存储或查询的数据提取所导致的。不过,从 Tableau 2018.3 开始,您可以选择使用多个表来存储数据提取中的数据,从而为包含数据提取 RLS 实现了一个以前只能为包含实时连接的数据源实现的工作流。

有关 Tableau 中包含数据提取的 RLS 的全面论述,请阅读由在此领域拥有丰富经验的一位 Tableau 销售顾问维护的博客。

免责声明: 单击这些链接将离开 Tableau.com。尽管我们尽最大努力确保外部网站的链接保持正确并相关,但 Tableau 不会对外部内容承担责任或提供支持。