Tableau 中的行级安全性选项概述
有时您想根据请求数据的用户筛选数据。例如:
- 您希望区域销售人员只看到其所在区域的销售数据。
- 您希望销售经理只看到向他们报告的销售人员的统计数据。
- 您希望学生只看到基于他们自己的考试成绩的可视化项。
以这种方式筛选数据的方法称为行级安全性 (RLS)。有多种方法可以在 Tableau 内部和外部实现行级安全性,每种方法都有自己的优点和缺点。
创建用户筛选器并将用户手动映射到值
在 Tableau 中实现行级安全性的最简单方法是通过用户筛选器,您可以在其中手动将用户映射到值。例如,您可以手动将名为“Alice”的用户映射到值“East”(东部),以便她只能看到数据源中“Region”(区域)列为“East”(东部)的行。
这种方法较为方便,但维护费用高并且必须注意安全性。必须按工作簿完成此方法,并且您必须更新筛选器并在用户群发生变化时重新发布数据源。当您使用这种类型的用户筛选器发布资产时,您需要设置权限,以便用户无法保存或下载它并移除筛选器,从而获得对所有数据的访问权。
有关详细信息,请参见 Tableau Desktop 和 Web 制作帮助中的创建用户筛选器并将用户手动映射到值(链接在新窗口中打开)。
使用数据中的安全字段创建动态用户筛选器
使用此方法,您可以创建计算字段,以自动执行将用户映射到数据值这一过程。此方法要求基础数据包括要用于筛选的安全信息。例如,使用计算字段、USERNAME() 函数和数据源中的“Manager”(经理)列,您可以确定请求视图的用户是否为经理并相应地调整视图中的数据。
由于筛选是在数据级别定义的,并由计算字段自动进行,因此此方法比将用户手动映射到数据值更不容易出错。当您使用这种类型的用户筛选器发布资产时,您需要设置权限,以便用户无法保存或下载它并移除筛选器,从而获得对所有数据的访问权。
有关详细信息,请参见 Tableau Desktop 和 Web 制作帮助中的使用数据中的安全字段创建动态筛选器(链接在新窗口中打开)。
使用数据策略
从 Tableau 2021.4 开始,当在 Tableau Server 或 Tableau Cloud 中启用 数据管理 时,拥有 Creator 许可证的用户可以通过虚拟连接上的数据策略实现行级安全性。由于虚拟连接是集中式且可重用的,因此您可以在一个地方为使用该连接的所有内容安全可靠地管理每个连接的行级安全性。
与 Tableau 中的上述行级安全性解决方案不同,如果作者忽略正确保护工作簿或数据源的权限,此方法不会带来同样的信息泄露风险,因为该策略是针对每个查询在服务器上强制执行的。
制定通过虚拟连接数据策略实现的行级安全性是为了解决其他行级安全性解决方案的缺点。我们推荐在大多数情况下选择此解决方案。
有关在虚拟连接上使用数据策略的行级安全性的详细信息,请参见关于虚拟连接和数据策略。
使用数据库中现有的 RLS
许多数据源都有内置 RLS 的机制。如果您的组织已努力在数据源中构建行级安全性,则可以利用现有的 RLS。
与在考虑 Tableau 的情况下构建内置 RLS 模型相比,实现一个内置的 RLS 模型并不一定更容易或更好:当组织已经对这些技术进行了投资,并且希望利用投资,或者当他们需要将相同的安全策略应用于除 Tableau 之外的其他数据库客户端时,通常会利用这些技术。
使用内置 RLS 的主要优点是,它允许管理员在一个位置,即在管理员数据库中实现和控制其数据安全策略。
传递用户属性
您可以传递包含在 JSON Web 令牌 (JWT) 中的用户属性,以自定义和控制对 Tableau Cloud 嵌入工作流中数据的访问。有关详细信息,请参见嵌入 v3 API(链接在新窗口中打开)。
行级别安全性选项比较
RLS 选项 | 在以下情况下有用 | 优点 | 缺点 |
---|---|---|---|
手动用户筛选器 |
|
|
|
动态用户筛选器 |
|
|
|
数据策略 |
|
|
|
数据库中的 RLS |
|
|
|
用户属性 |
|
|
|