内容:

数据安全

  • 版本 :2022.1 及更高版本

Tableau 提供了几种方法来控制哪些用户可以查看哪些数据。对于连接到实时数据库的数据源,您还可以控制用户单击已发布的视图时是否显示提供数据库凭据的提示。

Tableau 提供了几种方法来控制哪些用户可以查看哪些数据。对于连接到实时数据库的数据源,您还可以控制用户单击已发布的视图时是否显示提供数据库凭据的提示。一起使用以下三个选项,可取得不同的结果:

  • 数据库登录帐户: 创建连接到实时数据库的数据源时,您可以选择是通过 Windows NT 还是通过数据库的内置安全机制对数据库进行身份验证。

  • 身份验证模式:发布具有实时数据库连接的数据源或工作簿时,可以选择一种“身份验证模式”。可用的模式取决于上面的选择。

  • 用户筛选器:您可以在工作簿或数据源中设置筛选器,以基于用户的 Tableau Server 登录帐户控制其可在已发布视图中查看的数据。

下表概括了上述选项的一些依赖项:

数据库连接选项数据安全问题
数据库登录帐户使用...身份验证模式是否每个 Tableau Server 用户都可实现数据库安全性?用户筛选器是否是限制各用户可查看的数据的唯一方法?Web 缓存是否在用户间共享?
Active Directory 凭据(Windows 身份验证)

运行身份服务帐户

通过服务器运行身份服务帐户进行模拟

否*
Viewer(查看者)输入其凭据否*

用户名和密码

提示用户:当 Viewer(查看者)单击视图时,提示其提供数据库凭据。可以保存凭据。
嵌入式凭据:工作簿或数据源发布者可以嵌入其数据库凭据。
通过嵌入式密码进行模拟:嵌入带 IMPERSONATE 权限的数据库凭据。否*

* 由于可能会产生意外结果,Tableau 建议您不要将此身份验证模式用于用户筛选器。

用户筛选器、嵌入式凭据选项和模拟模式具有类似的效果 — 当用户单击视图时,不会显示提供数据库凭据的提示,用户只会看到与自己相关的数据。但是,用户筛选器是由作者在工作簿应用的,而模拟身份验证模式则依赖于管理员在数据库本身中定义的安全策略。

此部分中的其他文章

有时您想根据请求数据的用户筛选数据。例如:

  • 您希望区域销售人员只看到其所在区域的销售数据。

  • 您希望销售经理只看到向他们报告的销售人员的统计数据。

  • 您希望学生只看到基于他们自己的考试成绩的可视化项。

以这种方式筛选数据的方法称为行级安全性 (RLS)。有多种方法可以在 Tableau 内部和外部实现行级安全性,每种方法都有自己的优点和缺点。

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

在 Tableau 中实现行级安全性的最简单方法是通过用户筛选器,您可以在其中手动将用户映射到值。例如,您可以手动将名为“Alice”的用户映射到值“East”(东部),以便她只能看到数据源中“Region”(区域)列为“East”(东部)的行。

这种方法较为方便,但维护费用高并且必须注意安全性。必须按工作簿完成此方法,并且您必须更新筛选器并在用户群发生变化时重新发布数据源。当您使用这种类型的用户筛选器发布资产时,您需要设置权限,以便用户无法保存或下载它并移除筛选器,从而获得对所有数据的访问权。

有关详细信息,请参见 Tableau Desktop 和 Web 制作帮助中的创建用户筛选器并将用户手动映射到值(链接在新窗口中打开)

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

使用此方法,您可以创建计算字段,以自动执行将用户映射到数据值这一过程。此方法要求基础数据包括要用于筛选的安全信息。例如,使用计算字段、USERNAME() 函数和数据源中的“Manager”(经理)列,您可以确定请求视图的用户是否为经理并相应地调整视图中的数据。

由于筛选是在数据级别定义的,并由计算字段自动进行,因此此方法比将用户手动映射到数据值更不容易出错。当您使用这种类型的用户筛选器发布资产时,您需要设置权限,以便用户无法保存或下载它并移除筛选器,从而获得对所有数据的访问权。

有关详细信息,请参见 Tableau Desktop 和 Web 制作帮助中的使用数据中的安全字段创建动态筛选器(链接在新窗口中打开)

使用数据策略

从 Tableau 2021.4 开始,当在 Tableau Server 或 Tableau Online 中启用数据管理加载项时,拥有 Creator 许可证的用户可以通过虚拟连接上的数据策略实现行级安全性。由于虚拟连接是集中式且可重用的,因此您可以在一个地方为使用该连接的所有内容安全可靠地管理每个连接的行级安全性。

与 Tableau 中的上述行级安全性解决方案不同,如果作者忽略正确保护工作簿或数据源的权限,此方法不会带来同样的信息泄露风险,因为该策略是针对每个查询在服务器上强制执行的。

制定通过虚拟连接数据策略实现的行级安全性是为了解决其他行级安全性解决方案的缺点。我们推荐在大多数情况下选择此解决方案。

有关在虚拟连接上使用数据策略的行级安全性的详细信息,请参见关于虚拟连接和数据策略

使用数据库中现有的 RLS

许多数据源都有内置 RLS 的机制。如果您的组织已努力在数据源中构建行级安全性,则可以利用现有的 RLS。

与在考虑 Tableau 的情况下构建内置 RLS 模型相比,实现一个内置的 RLS 模型并不一定更容易或更好:当组织已经对这些技术进行了投资,并且希望利用投资,或者当他们需要将相同的安全策略应用于除 Tableau 之外的其他数据库客户端时,通常会利用这些技术。

使用内置 RLS 的主要优点是,它允许管理员在一个位置,即在管理员数据库中实现和控制其数据安全策略。

有关详细信息,请参见数据库中的行级安全性

行级别安全性选项比较

RLS 选项在以下情况下有用优点缺点
手动用户筛选器
  • 您正在进行概念验证或测试用户筛选功能

  • 您正在创建一个静态工作簿以供一组不变的用户使用

  • 您了解权限设置错误的数据安全风险

  • 简单且规模小

  • 易于理解的映射

  • 适合测试

  • 维护成本高

  • 需要更新筛选器并在用户群的变化时重新发布

  • 必须保护权限以防止用户看到未筛选的数据

  • 必须在每个工作簿中复制

动态用户筛选器
  • 您没有数据管理加载项

  • 数据包含可用于筛选的信息

  • 您了解权限设置错误的数据安全风险

  • 设置相对容易

  • 必须保护权限以防止用户看到未筛选的数据

  • 必须在每个工作簿或数据源中复制

数据策略
  • 您有数据管理加载项

  • 数据包含可用于筛选的信息

  • 数据安全的易用性是一个重要的问题

  • 集中

  • 安全

  • 维护成本低

  • 安全和分析的责任可以分开

  • 需要数据管理加载项

数据库中的 RLS
  • 您的数据库具有内置到数据库中的现有 RLS 安全性

  • 您未使用数据提取

  • 可能已经内置到组织的数据库中

  • 策略可应用于 Tableau 以外的数据库客户端

  • 必须使用实时查询

  • 可能有限制或要求。您的 IT 团队可以识别它们。

我应该使用哪个行级安全性选项?

您的组织在数据库中是否有适用于该项目的首选 RLS 解决方案?→ 有 →请参见数据库中的行级安全性

↓ 没有 ↓



您是否有数据管理加载项?

→ 有 →请参见关于虚拟连接和数据策略

↓ 没有 ↓



这是否为概念验证、基本用户筛选器测试或具有不变用户的静态工作簿?→ 是 →请参见使用手动用户筛选器(链接在新窗口中打开)

↓ 否 ↓



请参见使用动态用户筛选器(链接在新窗口中打开)




Tableau 中的行级安全性 (RLS) 是指限制特定用户可在工作簿中看到的数据行。这与 Tableau 权限不同,后者用于控制对内容和特性功能的访问。例如,权限控制用户是否可以对工作簿进行注释或编辑,而行级安全性使查看同一仪表板的两个用户能够仅查看允许每个用户查看的数据。

可通过多种方式在 Tableau 中实现 RLS。例如,您可以在数据源或工作簿级别设置 RLS,或者您可以使用具有数据策略的虚拟连接在连接级别设置 RLS(需要数据管理插件)。有关备选方案的详细信息,请参见Tableau 中的行级安全性选项概述

注意:本主题重点介绍数据源和工作簿的 RLS 最佳实践。有关本主题中概述的概念的更多深入示例,请参考白皮书 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 工作流程

对于实时连接和多表数据提取,基本 RLS 工作流为:

  1. 通过登录到 Tableau Server 或 Tableau Online 来标识用户

    • 这需要每个用户不同的用户名和安全单点登录 (SSO)

    • 可以使用 Active Directory、LDAP 或 Tableau REST API 来同步用户名和建立权限

  2. 从所有可能的数据权利中检索用户的数据权利集

    • 这需要一个可将权利链接到 Tableau 用户名的数据结构

  3. 数据按该用户的权利进行筛选

    • 这通常需要在计算字段中使用用户函数

  4. 已发布的筛选数据用于生成内容

    • 使用具有数据源筛选器的已发布(而不是嵌入式)数据源可确保无法通过下载工作簿或通过 Web 编辑工作簿来修改 RLS

联接、计算字段和筛选器的设置方式取决于数据的结构以及用户的管理方式。

权利表

可依据其对数据进行筛选的任何唯一属性组合都是一个权利。最常见的情况是,有单独的表用于指定权利本身并将这些权利映射到用户或用户角色。从性能角度来看,建议取消规范化,因为联接是高开销的操作。

权利视图(包括映射到用户或角色的权利)与数据联接。然后应用基于用户的数据源筛选器,作为 WHERE 子句,该子句仅为相关用户引入权限,从而引入适当的数据行。(查询优化应确保在联接处理时在查询之前进行筛选,以尽量减少数据重复。有关详细信息,请参见性能和操作的处理顺序。)

权利表模型

通常,有两种表示权利的模型:

完全映射到最深粒度级别

  • 为每个列完全定义权利。

  • 映射表中有一行适用于用户具有的每个可能的权利。

  • 此模型需要较少的联接子句。

稀疏权利

  • 为每个层次结构级别定义权利,使用 NULL 表示“全部”状态。

  • 映射表有一行适用于权利层次结构中的特定级别,这大大减少了层次结构中高级别用户的权利行数。

  • 此模型需要更复杂的联接和筛选器。

用户和角色

权利的组合通常表示为角色,后者随后链接到多对多映射表中的用户。这允许轻松更改角色或从角色中移除用户,同时仍保留角色及其权利的记录。

或者,可以创建直接将用户分配给权利的多对多映射表,而不是联接角色表。这将需要更直接管理表中的值,但确实不需要联接。

注意:与角色或权利关联的用户值需要与 Tableau 站点上的用户名或全名匹配,以便利用 Tableau Desktop 中的用户功能。

联接

无论用于表示权利的模型如何,建议联接所有权利并将表映射到单个非规范化权利视图中。尽管一开始这将导致权利的“爆炸”(高度重复)版本,但用户的数据源筛选器将减少它。如果您计划使用数据提取,您也将需要此视图。

当一切都是分层的时,最深层粒度方法可能有性能优势 — 您只需在层次结构的最深层级别执行单个联接即可。仅当最低级别的所有属性都不同时,此方法才有效。如果可能存在重复(例如,多个区域中的中央子区域),则需要联接所有列,以实现不同键值的效果。

实际的详细信息及其性能特征取决于数据系统,需要进行测试。例如,使用单个键可能会提高性能,因为联接仅在一列上执行,但在考虑其他因素时,为所有列正确编制索引可能会提供相同的性能。

实现行级安全性

最深的粒度

创建映射权利的去规范化视图后,将会在视图和 Tableau 数据连接对话框中的视图之间设置内部联接。数据可以保留在传统的星型架构中。或者,维度表和事实表可以一起具体化为两个视图。多表数据提取将生成数据提取表以匹配联接,因此创建两个视图将简化生成的数据提取。SQL 将遵循以下基本模式:

SELECT * 
FROM data d INNER JOIN entitlements e ON
d.attribute_a = e.attribute_a AND 
d.attribute_b = e.attribute_b AND ... 
WHERE e.username = USERNAME()

稀疏权利

如果您的权利更类似于稀疏权利模型,则由于 NULL 值的原因,将数据联接到权利的自定义 SQL 将稍微复杂一些。从概念上讲,它看起来如下所示:

SELECT *
FROM data d 
INNER JOIN entitlements e ON
(e.region_id = d.region_id OR ISNULL(e.region_id) AND
(e.sub_region_id = d.sub_region_id OR ISNULL(e.sub_region_id) AND
(e.country_id = d.country_id OR ISNULL(e.country_id)

无需使用自定义 SQL,即可在 Tableau Desktop 中使用交叉联接和其他筛选器来完成此操作。在联接对话框的两侧创建联接计算,该计算仅由整数 1 组成,并将其设置为相等。这将数据表中的每一行与权利表中的每一行联接。

然后,您需要计算(或单个计算)来考虑层次结构中的级别。例如,您可能有采用以下格式的若干计算:[region_id] = [region_id (Entitlements View)] OR ISNULL([region_id (Entitlements View)]

或者,您可能有将所有级别合并在一个中的合并计算:

([region_id] = [region_id (Entitlements View)] OR ISNULL([region_id (Entitlements View)])
AND
([sub_region_id] = [sub_region_id (Entitlements View)] OR ISNULL([sub_region_id (Entitlements View)])
AND
([country_id] = [country_id (Entitlements View)] OR ISNULL([country_id (Entitlements View)])

ISNULL 函数将任何权利列与其他列中的所有项匹配。与 RLS 一样,这些计算应添加为数据源筛选器。

数据源筛选器

对于这两种方法,一旦权利与数据正确联接,就需要设置筛选器以限制特定用户的数据。应使用用户函数创建计算字段。例如,对 Username 字段中列出的用户是否与登录到 Tableau 站点的用户的用户名相同进行简单的布尔比较:[Username] = USERNAME()

此计算应用作数据源筛选器(选中 TRUE)。

如果数据源已嵌入,并且用户具有 Web 编辑或下载工作簿的权限,则 RLS 不存在,因为可以轻松移除强制该数据源的筛选器。Tableau 数据源应单独发布,而不是嵌入到工作簿中。

具有最深粒度的所有访问权限

还有一种常见情况,即组织内有两个访问权限级别:能够查看所有内容(“所有访问权限”)的人员,或具有某种合理可定义的权利子集的人员。这在嵌入式应用程序中最为常见 — 托管数据的组织可以查看所有内容,但每个客户只能查看自己的数据。在这种情况下,您需要一种方法来针对“所有访问权限”用户返回完整数据,同时为所有其他用户保留最深粒度的联接。

对于此方法,您将使用 Tableau 组在联接条件中使用计算来创建覆盖。

  1. 为应查看所有数据的用户创建组(此处称为“所有访问权限”)

  2. 从事实视图中,创建具有两个联接条件的左联接

    • 在左侧(事实视图),为计算输入 True

    • 在右侧(权利视图),计算应为:IF ISMEMBEROF('All Access') THEN False ELSE True END

    • 第一个联接条件应位于表示最深层粒度的列上

    • 第二个联接条件应该是两个计算:

  3. 在工作表上,创建一个结构如下的计算:[Username] = USERNAME() OR ISMEMBEROF(['All Access'] ([Entitlements View)])

  4. 在用户名计算上创建数据源筛选器

如果用户是“所有访问权限”组的成员,则联接将成为 True = False 上的左联接。这意味着权利视图中根本没有匹配项,因此在返回的整个事实视图中,权利视图中的列为 NULL(零重复)。如果用户不是“所有访问权限”组的成员,则 True = True 联接条件不会更改任何内容,并且联接将按预期运行。

当组重写工作时,用作数据源筛选器的用户计算对所有行都为 true,或者它将筛选到层次结构中用户的最深粒度。

性能和操作的处理顺序

在 Tableau(Desktop、Server 或 Online)中查看可视化项时,Tableau 会向 RDBMS 发送优化的查询,然后 RDBMS 处理查询并将结果发送回 Tableau 以使用生成的数据呈现可视化项。执行联接、计算和筛选器的操作顺序取决于查询优化器以及查询的执行方式。

实时连接

在 Tableau 中使用与数据源的实时连接时,查询执行的性能取决于查询优化器,该优化器将传入的 SQL 转换为检索数据的有效计划。

处理查询的方法有两种:

  1. 将权利行筛选到用户,然后联接到事实表

  2. 将权利联接到事实表,然后筛选到用户的行

在理想情况下,查询优化器将确保数据库通过筛选然后联接来处理查询。 如果用户有权拥有所有内容,这意味着处理的最大行数将是数据表中的行数。

如果数据库通过联接然后筛选处理查询,则数据可能会重复。 处理的最大行数是有权查看该特定行的用户数乘以数据表中的每一行。

如果发生第二种情况,将很清楚:您的查询需要很长时间才能完成,您会收到错误,或者数据库中存在性能问题的迹象。您的数据总量将呈指数级增长,这可能导致后端系统过度紧张。

数据提取

当 Tableau 中的数据源是实时连接时,Tableau 会向 RDBMS 发送呈现特定可视化项或仪表板所需的每个查询。当数据源是数据提取时,从基础数据源查询数据的过程仅在创建和刷新数据提取时发生。所有可视化的单个查询都由数据提取文件中的数据提取引擎回答。

生成单个表数据提取时也存在相同的操作顺序问题。但是,“爆炸”将发生在基础数据源和生成的数据提取本身中。

数据提取注意事项

从 Tableau 2018.3 开始,数据引擎可以创建多表数据提取,并且可以按上述方式实施 RLS。使用多个表数据提取减少了生成具有多对多关系的数据提取所需的时间,因为它没有实现联接。

数据提取应使用数据对象权利对象生成。 这是数据提取中最简单的存储,可获得最佳性能。

  • 数据对象是表、视图或自定义 SQL 查询,表示事实表和必要维度表的去规范化组合

  • 权利对象是去规范化的表、视图或自定义 SQL 查询,包含在最精细的级别筛选数据所需的任何权利,该对象需要:

    • 与 Tableau Server 或 Tableau Online 中的确切用户名匹配的用户名列

    • 数据对象每个最精细权利的行

此格式采用上述最深粒度方法排列。多表数据提取使用相同的方法,但需要注意的是,只有两个正在联接的对象,并且已在对象中应用了任何特定于字段的筛选。

由于多表数据提取禁用了数据提取筛选器,因此可以在数据源中连接到的视图或表中进行筛选,或在 Tableau 数据连接对话框中定义自定义 SQL 对象中的筛选器。

注意:与实时连接一样,如果数据源已嵌入,并且用户具有 Web 编辑或下载工作簿的权限,则 RLS 不存在,因为可以轻松移除强制该数据源的筛选器。数据提取应单独发布,而不是嵌入到工作簿中。

单表数据提取

仅当使用 2018.3 之前的 Tableau 版本时,才建议使用以下方法 — 如果可用,则最好使用多表数据提取。

单表数据提取在构造 Tableau 数据源时将实现生成的任何联接,并通过一个查询将所有内容存储为单个表,其结果在数据提取文件中的单个表中转换。这种去规范化会造成大量数据重复的风险,因为分配给多个权利或用户的每一行都会由于多对多关系而重复。

为了防止这种重复,请执行以下操作:

  1. 创建包含该权利用户名的安全用户字段

    • 例如,值可以是“bhowell_mosterheld_rdugger”

  2. 使用 Tableau 中的 CONTAINS() 函数正确识别单个用户

    • 例如,CONTAINS([Security Users Field], USERNAME())

这种方法显然有一些注意事项。它要求您从行中的权利转到使用 SQL 正确分隔的单个列,并且该列只能包含这么多字符。部分匹配可能会带来麻烦,您需要使用在 ID 本身中永远无效的分隔符。尽管它在 Tableau 数据引擎中性能出色,但作为字符串计算,对于大多数数据库来说,速度会很慢。这将限制您切换回实时连接的能力。

或者,您可以根据“角色”或权利级别使用不同的数据提取,以便数据提取中仅包含适合该人员或级别的数据,但这需要进程来适当许可和利用 Tableau Server 内的模板发布,通常通过 API 进行。

使用数据库中的内置行级安全性

许多数据库都有内置 RLS 的机制。如果您的组织已努力在数据库中构建行级安全性,则可以利用现有的 RLS。实现一个内置的 RLS 模型并不一定比在头脑中构建它更容易或更好:当组织已经对这些技术进行了投资,并且希望利用投资时,通常会利用这些技术。使用内置 RLS 的主要优点是,它允许管理员在一个位置,即在管理员数据库中实现和控制其数据安全策略。有关详细信息,请参见数据库中的行级安全性


如果您的组织已努力在数据库中构建行级安全性 (RLS),您或许能够使用以下技术之一来利用现有的 RLS。为了利用数据库的安全模型,需要实时连接。此外,这些技术在 Tableau Online 中可能不可用;Tableau Online 用户名是一个唯一的电子邮件地址,它通常不是数据库端的用户标识。

实现一个内置的 RLS 模型并不一定比在头脑中构建它更容易或更好:当组织已经对这些技术进行了投资,并且希望利用投资时,通常会利用这些技术。

注意:有关可用于在 Tableau 中实现行级安全性的替代方法的信息,请参见Tableau 中的行级安全性选项概述

模拟 (Microsoft SQL Server)

可以配置 Microsoft SQL Server(和几个相关系统),以便数据库用户只能访问内置 RLS 筛选器的视图,从而使用安全连接表或 DBA 构建的视图。Tableau 可以使用一种称为“模拟”的概念来利用这一点。

将包含 MS SQL Server 连接的 Tableau 数据源发布到 Tableau Server 时,可以通过两个身份验证选项来利用模拟。您看到的菜单将取决于您是使用网络身份验证还是通过输入用户名/密码凭据登录到 SQL Server。

若要为可以访问 Tableau Server 中已发布数据源的任何用户启用 RLS 筛选,对于数据库中将访问仪表板或数据源的所有 Tableau 用户,AD 运行身份帐户或嵌入的 SQL 服务器凭据必须具有 EXECUTE AS 权限。所有 Tableau 用户都必须以用户身份存在于数据库服务器中,并且具有您尝试连接到(并应用了 RLS)的视图的 SELECT 权限。有关完整的要求列表,请参见模拟要求

Kerberos 和约束委派

使用 Kerberos 在 Tableau Server 中进行约束委派的操作方式与模拟类似,因为它允许 Tableau Server 使用工作簿视图或视图的 Kerberos 凭据代表查看者执行查询,因此,如果在数据库上设置了 RLS,工作簿的查看器者只会看到他们的数据。

若要查看支持 Kerberos 委派的数据库的完整列表,请参见启用 Kerberos 委派。需要 Active Directory;安装有 Tableau Server 的计算机必须加入到 Active Directory 域。发布数据源时指定的身份验证方法(链接在新窗口中打开)必须是“Viewer(查看者)凭据”

请注意,使用 Microsoft Analysis Services 时,可以为 RLS 使用 Kerberos。

OLAP 多维数据集

Tableau 中的 OLAP 多维数据集连接没有等效的数据源筛选器,这是 Tableau 中基于权利表的 RLS 方法或访问 USERNAME() 函数所必需的。出于这些原因,Kerberos 和约束委派是使用 OLAP 数据库进行 RLS 的推荐方法,它允许 Tableau 利用已在 OLAP 服务器端实现的用户筛选。

如果查看仪表板的用户将不会是域的一部分,则可以使用手动方法来创建用户筛选器。但是,由于生成的用户筛选器集不能添加为数据源筛选器,而是将存在于筛选器功能区上,因此使用此方法的任何已发布的视图都不允许使用 Web 编辑和下载工作簿功能,这一点很重要。

SAML 委派和 SAP HANA

如果 Tableau Server 配置为使用配置 SAP HANA SSO提供单点登录体验,则 Viewer(查看者)凭据将用于以该用户身份执行查询,该查询将在用户级别上应用的任何安全性范围内运行。 发布数据源时指定的身份验证方法(链接在新窗口中打开)必须是“Viewer(查看者)凭据”

强制特定于用户的会话的初始 SQL (Oracle VPD)

初始 SQL 允许您指定在连接到数据库时运行的 SQL 命令,以便设置要在会话期间使用的临时表或设置自定义数据环境。

对于 Oracle VPD,您可以通过运行特定的存储过程或函数来设置特定于用户的会话,将数据库连接的上下文设置为与 Tableau 用户的用户名匹配:

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

与模拟一样,为 RLS 使用此项也适用相同的高级别要求;DBA 必须设置 VPD 和所有关联的用户才能存在于数据库中。

在 MS SQL Server 上,您可以强制 EXECUTE 作为命令(但是,这与 Tableau 已对模拟所做的类似):

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

注意:如果数据源已嵌入,并且用户具有 Web 编辑或下载工作簿的权限,则 RLS 不存在,因为可以轻松移除强制该数据源的初始 SQL。数据源应单独发布,而不是嵌入到工作簿中。

行级安全性方法的比较矩阵

方法在以下情况下有用优点缺点
权利表(推荐)
  • 数据库中存在权利的概念

  • 组织首次设置行级安全性

  • 易于测试、更新、维护和扩展

  • 适用于版本 2018.3 及更高版本中的实时连接和数据提取

  • 需要创建和维护权利表

  • 可能需要选择和创建适当的键来优化性能

包含数据提取的 CONTAINS()
  • 在版本 2018.3 之前的数据提取中实现 RLS

  • 允许您利用数据提取效率

  • 需要将所有用户映射到单个列

  • 由于存在字符串计算而难以切换回实时连接

模拟
  • 访问数据的每个用户都将以用户身份存在于 SQL Server 中(通常为内部部署)

  • 集中处理和维护安全性 - 数据库

  • 要求访问视图的每个人以用户身份存在于 SQL Server 中

  • 仅适用于 Microsoft SQL Server

Kerberos
  • 为 Kerberos 委派设置所有必要的数据库,并在数据库上设置 RLS(通常为内部部署)

  • 查看者的名称将显示在数据库的访问日志上

  • 在数据库中处理和维护安全性

  • 必须将 Tableau 配置为使用 LDAP - Active Directory

  • Tableau Server 必须加入 AD 域

  • 每个用户都必须存在于您的 AD 域中

初始 SQL
  • 数据库支持初始 SQL,并在数据库端设置了 RLS

  • 允许在加载时传递 Tableau 参数

  • 无法与其他用户共享的专用连接

  • 用户必须存在于数据库中才能以用户身份执行查询

  • 并非所有数据库都支持初始 SQL。

  • 由于缓存共享受限,因此可能会影响


Tableau Server 需要存储它使用的一些密文以执行各种功能,通常包括保护内部通信的安全、与其他应用程序或操作系统通信,或实现与客户端的安全通信。在此上下文中,术语密文可能是指密码、令牌或用于向另一个实体验证某个实体身份的其他字符串。

运行 Tableau Server 需要两种类别的密文。这两种密文根据其生成方式而有所不同。

  • 管理员生成的密文。这些密文包括用户运行身份帐户的凭据及关联密文,以及 Tableau Server 使用的 SMTP 凭据。

  • 由系统中的各种进程自动生成的密文。例如,需要一个密文来保护群集控制器和 ZooKeeper 进程之间的通信。并且,每个与 Postgres 通信的服务和编程用户都需要一些不同的密码。

大多数密文在空闲时将被加密。需要密文时,将会在运行时对其进行解密。

本主题介绍密文存储的工作方式,并介绍了在 Tableau Server 上正确管理密文存储所需执行的操作。

了解密文存储的工作方式

在安装期间,Tableau Server 会在 Java 密钥存储中生成和存储一个主密钥。主密钥用于对系统中使用的配置加密密钥进行加密。

每当创建或更新一个新密文时,将会使用配置加密密钥对该密文进行加密。加密值随后与其对应的配置参数一起存储在服务器上的一个 YAML 文件中。保存加密值的参数使用 ENC( 格式,其中 是 Base64 编码的加密字符串。

在运行时,当需要访问给定密文时,系统会将加密值读取到内存中,并使用配置加密密钥对其进行解密。

对于待处理的更改(其中的密文是在配置更改过程中输入的),将对整个事务进行加密。在这种情况下,在您输入密文然后保存待处理的更改后,密文将(通过加密的 SSL)传输到协调服务。协调服务对密文进行加密和存储,直到应用待处理的更改为止。应用更改时,密文(仍处于加密状态)将升级为当前配置版本。

Tableau Server 在 GCM 模式下使用 256 位 AES 对密文进行加密。用于保护存储安全的密钥与用于在将嵌入数据库凭据存储在存储库中之前对其进行加密的资产密钥不同。

谁具有主密钥的访问权限?

在默认安装中,Tableau Server 的 Java 密钥存储安装在 \ProgramData\Tableau\Tableau Server\data\tabsvc\crypto\keystores\ 文件夹中。如果将 Tableau 安装在非系统驱动器上,则路径为 。默认情况下,以下帐户具有此目录的访问权限:

  • 用户运行身份帐户(如果已配置)

  • NetworkService 预定义本地 Windows 帐户

  • LocalSystem 预定义本地 Windows 帐户

  • 计算机管理员组的成员

导入和导出配置信息

Tableau 服务管理器引入了使用 tsm configuration 导入和导出配置信息的功能。

注意:此版本的 Tableau Server 不支持从备份还原配置信息。作为替代,我们建议使用导出和导入配置命令来备份和还原配置信息。

尽管在以内部方式存储在磁盘上时配置密文已加密,但在将配置导出到文件时,密文将以纯文本形式写入文件。管理员负责采取措施来保护此文件。有各种可用选项:

  • 将文件写入加密的文件系统。

  • 将文件写入由文件系统权限限制为只有特定用户或组才能访问的目录。

  • 对输出文件进行加密。

保护用于导入和导出操作的密文

使用第三方工具集(例如 OpenSSL)对备份输出进行加密。

群集节点

将新节点添加到 Tableau Server 群集时,您首先将需要生成节点配置文件 (tsm topology)。节点配置文件包含用于对配置密码加密的主密钥存储文件的副本。

重要信息:我们强烈建议您采取额外措施,在导出包含密文的配置文件时保护节点配置文件的安全。

在新节点上安装和配置 Tableau Server 时,您将需要向 initialize-tsm 命令提供节点配置文件。

密文存储事件日志记录

将记录与密文存储相关的以下事件:

  • 生成新加密密钥

  • 加密密钥已回滚或更改

  • 对配置文件中的新值进行加密

有关日志文件及其存储位置的详细信息,请参见使用日志文件

管理密文

作为 Tableau Server 管理员,与密文存储相关的最重要任务是定期更新密文。在某些情况(服务器故障的排除或审计)下,您可能需要检索密码。

对于其他操作,例如升级版本、备份和还原或向群集中添加新节点(如上所述),Tableau Server 会自动管理密文存储和相关过程。

更新密文

您应根据公司的安全策略定期更新密文。

若要更新主密钥和自动生成的密文,请运行 tsm security regenerate-internal-tokens

检索密码

在某些情况下,您可能需要为故障排除或其他操作检索密码。例如,您可能需要由 Tableau Server 生成并加密的 Postgres readonly 用户凭据。在这些情况下,您可以运行一个 tsm 命令,该命令将为您检索密码并对其进行解密。

若要检索密码,请打开命令提示符,并针对下表中列出的其中一个参数发出 tsm configuration get 命令。

例如,若要检索 readonly Postgres 用户的密码,请键入以下命令:

tsm configuration get -k pgsql.readonly_password

该命令将以明文形式返回密码:

$ tsm configuration get -k pgsql.readonly_password

password

Configuration ParameterDescription
clustercontroller.zookeeper.passwordPassword for cluster controller to connect to zookeeper.
elasticserver.client.passwordPassword for logging into Elastic search service.
elasticserver.ssl.admin.cert.bytesAdmin certificate that is used for administrative access to the Elastic search service. The admin certificate is used to generate the node certificate.
elasticserver.ssl.admin.key.file_bytesCertificate key for administrative access to the Elastic search service.
elasticserver.ssl.node.cert.bytesCertificate that is used for Elastic node-to-node communication.
elasticserver.ssl.node.key.file_bytesCertificate key that is used for Elastic node-to-node communication.
elasticserver.ssl.root.cert.bytesCertificate that is used to sign the admin and node certificates . This certificate is used by TSM for health check and by NLP to connect to Elasticserver.
elasticserver.ssl.root.key.file_bytesCertificate key for root certificate.
filestore.zookeeper.passwordPassword for filestore to connect to zookeeper.
hyper.connection.init_passwordPassword used to initialize the Hyper database for user tableau_internal_user and is then used for connecting to Hyper.
jdbc.passwordPassword for the rails Postgres user.
kms.persistent_storeA collection of master encryption keys (MEKs) used by the Key Management System.
maestro.rserve.passwordPassword for connecting to an external Rserve instance used by Tableau Prep Conductor for running flows that have nodes with R scripts.
maestro.tabpy.passwordPassword for connecting to an external TabPy (Python server) instance used by Tableau Prep Conductor for running flows that have nodes with Python scripts.
oauth.google.client_secretClient secret of the Google Cloud Platform account.
oauth.quickbooks.consumer_secretConsumer secret of the Intuit developer account.
oauth.salesforce.client_secretClient secret of the Salesforce developer account.
pgsql.adminpassword

tblwgadmin Postgres 用户的密码。

注意:尽管配置参数在 Tableau 的配置文件(tabsvc.yml、workgroup.yml)中已加密,但此密码将以纯文本形式存储在由 SAML 使用的文件中。

pgsql.readonly_passwordPassword for the readonly Postgres user.
pgsql.remote_passwordPassword for the tableau Postgres user.
redis.password

Redis 的密码。

注意:尽管配置参数在 Tableau 的配置文件(tabsvc.yml、workgroup.yml)中已加密,但配置将以纯文本形式出现在由 Redis 应用程序使用的 redis.conf 文件中。Redis 不支持加密/安全密码。

searchserver.client.password
servercrashupload.proxy_server_passwordPassword for custom proxy server used to upload crash reports.
service.runas.passwordPassword of the Run As users. Stored temporarily.
ssl.cert.file_bytesThe content of one of the three SSL certificate files uploaded by the administrator. The certificate files are required to enable secure external connections to Tableau Server.
ssl.chain.file_bytesThe chain file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.file_bytesKey file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.passphraseOptional passphrase used to protect the external SSL key.
svcmonitor.notification.smtp.passwordSMTP Server password supplied by the administrator through TabConfig.exe.
tabadminservice.passwordPassword for the service that allows server admins to download log files through the web interface.
vizportal.openid.client_secretThis is the password ("provider client secret") used for OpenID Connect SSO.
vizqlserver.external_proxy_passwordPassword used to authenticate to an external proxy.
wgserver.domain.passwordPassword used to bind to Active Directory.
wgserver.saml.key.passphrasePassphrase used to access the PKCS#8 SAML key file.
zookeeper.tsm.passwordPassword that TSM uses to connect to Zookeeper coordination service


以下信息适用于 IT 人员和管理员、Tableau Server 和站点管理员,以及对管理仪表板扩展程序和其数据和业务安全性感兴趣的任何人。部署相关建议面向既有 Tableau Desktop 用户也有 Tableau Server 或 Tableau Online 用户的公司。

Tableau 中扩展程序的安全性

扩展程序是可以驻留在网络内部、第三方服务器外部或 Tableau 托管的安全沙盒化环境中的 Web 应用程序。扩展程序可与仪表板中的其他组件交互,并且可能有权访问工作簿中的可见数据和基础数据(通过明确定义的 API)。Tableau 支持两种类型的扩展程序:

支持网络的扩展程序

支持网络的扩展程序托管在位于本地网络内部或外部的 Web 服务器上,并具有对 Web 的完全访问权限。支持网络的扩展程序可以与其他应用程序和服务连接,在仪表板内为 Tableau 提供新功能,例如自定义数据可视化项、自然语言生成和写回数据源方案。支持网络的扩展程序具有对 Web 的完全访问权限,这意味着,虽然它们可以通过连接到外部资源来提供丰富的功能和体验,但应在部署或采用之前对它们进行仔细评估。

沙盒化扩展程序

沙盒化扩展程序在受保护的环境中运行,无法访问 Web 上的任何其他资源或服务。沙盒化扩展程序由 Tableau 托管,可提供最大的安全性,并可以消除数据泄露的风险。为了防止网络攻击,沙盒化扩展程序环境和托管服务已由第三方顾问进行了广泛的渗透测试。

您可以在 Tableau Desktop、Tableau Server 和 Tableau Online 中使用沙盒化扩展程序和支持网络的扩展程序。Tableau Server 和 Tableau Online 可最大程度地控制用户可运行的扩展程序。

支持网络的扩展程序的潜在安全风险

由于扩展程序是 Web 应用程序,因此支持网络的扩展程序可能容易受到某些类型的恶意攻击,进而可能会给计算机或数据带来风险。开放式 Web 应用程序安全项目(链接在新窗口中打开) (OWASP) 每年会确定最严重的 Web 应用程序安全风险。这些风险包括以下各项:

  • SQL 注入

  • 跨站点脚本 (XSS)

  • 敏感数据泄露

如果扩展程序的开发人员未正确验证和处理用户输入,或者他们生成动态查询来访问敏感数据库,则这些风险可能会损害扩展程序。在评估您希望允许在 Tableau 中使用的扩展程序时,请务必考虑他们如何管理身份验证、数据访问或用户输入,以及它们如何降低安全风险。

缓解支持网络的扩展程序的安全威胁

了解扩展程序的第一步是确定企业风险。在许多情况下,仪表板扩展程序不会访问工作簿中的基础数据,并且所有 JavaScript 代码都在用户计算机上运行的浏览器的上下文中运行。在这些情况下,即使扩展程序可能驻留在域外部的第三方站点上,数据也不会离开计算机。某些扩展程序允许您将 Tableau 与已在域中部署的其他应用程序连接。

Tableau 提供了适用于扩展程序的安全措施和安全要求。将为 Tableau Desktop、Tableau Server 和 Tableau Online 启用这些安全措施和要求。

  • 所有扩展程序都必须使用 HTTP 安全 (HTTPS) 协议。

  • 默认情况下,系统会提示使用带有支持网络的扩展程序的仪表板的任何用户,并要求用户允许或拒绝扩展程序运行权限。如果扩展程序将访问基础数据,则它必须请求权限。

  • 若要在 Tableau Server 或 Tableau Online 上运行,必须将支持网络的扩展程序的 URL 添加到安全列表。服务器管理员管理 Tableau Server 的此列表;站点管理员管理 Tableau Online 的此列表。

  • 在 Tableau Server 和 Tableau Online 上,服务器或站点管理员可以(分别)控制是否为每个支持网络的扩展程序显示提示。

有关详细信息,请参见在 Tableau Server 中管理仪表板扩展程序

使用 Tableau 管理扩展程序

扩展程序提供了一种向仪表板添加独特功能的方法。您可以使用扩展程序将仪表板与 Tableau 外部的应用程序直接集成。尽管扩展打开了一个充满可能性的世界,但在某些情况下,您需要或者希望对在公司或企业中部署扩展程序的方式进行控制。在这方面,扩展程序与您打算使用的任何其他软件并无不同。在公司中部署软件应用程序之前,您应进行全面测试,并验证软件是否按预期方式工作而且是安全的。扩展程序也是如此。

确定用户应具有的访问权限级别,并确定要使用的扩展程序(或者相反,您不希望使用的扩展程序)之后,您可以使用 Tableau 内的控件和功能来限制和呈现用户可访问的仪表板扩展程序。

针对 Tableau Desktop 的建议

您有一系列用于在公司中部署 Tableau Desktop 的选项。您可以允许对沙盒化扩展程序和支持网络的扩展程序的无限制访问,也可以限制谁可以访问扩展程序,以及在什么情况下可以访问。

默认情况下,Tableau Desktop 用户可以不受限制地访问沙盒化扩展程序和支持网络的扩展程序。您可以在安装过程中使用两个选项来更改默认设置。

  • 关闭所有扩展程序 (DISABLEEXTENSIONS)

  • 关闭支持网络的扩展程序 (DISABLENETWORKEXTENSIONS)。

注意:您可以在安装 Tableau Desktop 通过编辑注册表 (Windows) 或在每个桌面上运行脚本 (Mac) 来更改这些设置。请参见禁用仪表板扩展程序

部署方案

使用安装设置,您可以通过多种方式部署 Tableau Desktop。

  • 允许所有扩展程序 - 在此部署方案中,您可以选择信任 Tableau 仪表板作者选择要使用的沙盒化扩展程序和支持网络的扩展程序。如果要使 Tableau Desktop 用户具有最大的灵活性,请使用默认安装设置。使用默认设置,Tableau Desktop 用户可以不受限制地访问沙盒化扩展程序和支持网络的扩展程序。默认设置为:DISABLEEXTENSIONS=0DISABLENETWORKEXTENSIONS=0。 请参见通过命令行安装 Tableau Desktop

  • 仅允许沙盒化扩展程序 - 在此方案中,您知道沙盒化扩展程序是安全的,并且希望允许它们,但您不确定支持网络的扩展程序的情况,并且希望阻止其使用。若要关闭对支持网络的扩展程序的支持,请设置 DISABLENETWORKEXTENSIONS 属性 (DISABLENETWORKEXTENSIONS=1)。保留用于启用扩展程序的默认设置 (DISABLEEXTENSIONS=0)。请参见通过命令行安装 Tableau Desktop

  • 不允许使用扩展程序 - 在这种情况下,您不希望允许用户使用任一类型:支持网络的扩展程序或沙盒化扩展程序。在这种情况下,通过使用 DISABLEEXTENSIONS 属性 (DISABLEEXTENSIONS=1) 关闭对所有扩展程序的支持。请参见通过命令行安装 Tableau Desktop

使用设置的组合- 您可能有一些用户需要并且应该不受限制地访问所有扩展程序,而其他用户对沙盒化扩展程序的访问就足够了,最后是一组根本不需要访问扩展程序的用户。由于扩展程序选项是按桌面设置的,因此您可以为特定用户及其用例配置部署。

Web 制作 - 如果 Tableau Server 或 Tableau Online 可供用户使用,他们可以使用 Web 制作来访问扩展程序。在 Web 制作中,将应用扩展程序的服务器或站点设置。在这种情况下,服务器和站点管理员可以确定允许用户访问哪些扩展程序。管理员可以使用服务器和站点设置仅限制对沙盒化扩展程序的访问,或限制对已添加到安全列表的沙盒化扩展程序和支持网络的扩展程序的访问。

针对 Tableau Server 和 Tableau Online 的建议

如果用户可以访问 Tableau Server 或 Tableau Online,则可以使用内置的安全控件来对可使用的扩展程序以及在哪些情况下使用进行限制。如果已在 Tableau Desktop 上禁用了扩展程序,您仍然可以允许用户在 Web 制作中添加扩展程度,但可以将可使用的扩展程序数量限制为您批准的扩展程序。

在安全列表上信任沙盒化扩展程序和支持网络的扩展程序

从 Tableau 2019.4 开始,默认情况下只允许运行沙盒化扩展程序。除非已将支持网络的扩展程序添加到安全列表,否则不允许使用它们。管理员可以将支持网络的扩展程序添加到站点的设置页面(“设置”>“扩展程序”>“启用特定扩展程序”)。

注意:若要在 Tableau 2018.2 和 Tableau 2018.3 中默认为扩展程序使用安全列表,您需要更改站点的设置。在“扩展程序设置”页面上的“扩展程序默认行为”下,清除“启用未知扩展程序...”选项。在 Tableau Server 2019.1、Tableau 2019.2 和 Tableau 2019.3 中,默认情况下,除非已将扩展程序添加到安全列表中,否则不允许运行任何扩展程序。

安全列表检查清单:

  • 扩展程序是否来自您知道并信任的来源?

  • 检查扩展程序的 URL。URL 看上去是否可疑或包含可疑的域名?

  • 扩展程序是否需要访问完整数据(基础数据)或摘要数据?请参见了解数据访问

  • 在允许广泛使用之前测试扩展程序。请参见“测试扩展程序的安全性”。请参见测试支持网络的扩展程序以保障安全性

将扩展程序添加到安全列表。

阻止特定扩展程序在 Tableau Server 上运行

在 Tableau Server 上,可以通过将其 URL 添加到阻止列表来阻止特定扩展程序。如果有多个以不同方式针对扩展程序配置的站点,这将非常有用。举例来说,如果有一个您希望在其中测试内部或第三方扩展程序的测试站点,则可能已启用了扩展程序的默认行为,在默认行为中,允许未列出的扩展程序运行,前提是它们不访问工作簿中的基础数据。将扩展程序添加到阻止列表可以防止在测试站点上意外使用该扩展程序。

  • 将不想允许的扩展程序的 URL 添加到阻止列表。此选项仅在 Tableau Server 上可用。请参见阻止特定扩展程序

针对站点禁用扩展程序

默认情况下,扩展程序在 Tableau Server 和 Tableau Online 上已启用。在 Tableau Server 上,服务器管理员可以为站点禁用扩展程序。在 Tableau Online 上,站点管理员可以为站点禁用扩展程序。在 Tableau Server 上,服务器管理员可以完全禁用扩展程序,从而覆盖站点设置。您不应在服务器上或为站点更改此设置,因为您可以控制要在安全列表中允许的支持网络的扩展程序,并且您可以控制默认情况下允许的沙盒化扩展程序的设置。

显示或隐藏运行支持网络的扩展程序的用户提示

将支持网络的扩展程序添加到安全列表时,您可以配置当用户将扩展程序添加到仪表板或者与包含扩展程序的视图交互时,默认情况下是否会看到提示。提示告知用户有关支持网络的扩展程序的详细信息以及该扩展程序是否能访问完整数据。用户可以利用提示来允许或拒绝扩展程序运行。您可以向用户隐藏提示,从而允许扩展程序立即运行。如果为站点启用,则默认情况下允许沙盒化扩展程序,并且不会提示用户。

关闭沙盒化扩展程序

从 Tableau 2019.4 开始,默认情况下为 Tableau Server 和 Tableau Online 启用沙盒化扩展程序。沙盒化扩展程序在受保护的环境中运行,并由 Tableau 托管。管理员可以控制是否允许用户在站点上运行沙盒化扩展程序。无需将沙盒化扩展程序添加到安全列表中。如果允许沙盒化扩展程序,用户能够随意将沙盒化扩展程序添加到仪表板,并能够打开和使用包含沙盒化扩展程序的仪表板。如果需要阻止沙盒化扩展程序,服务器管理员可以将沙盒化扩展程序添加到全局阻止列表中。如果需要完全关闭沙盒化扩展程序,您可以更改站点的默认设置。如果更改沙盒化扩展程序的默认设置,则仅允许运行安全列表中的扩展程序(包括沙盒化扩展程序)。


Tableau Server 有三个密钥管理系统 (KMS) 选项,允许您启用静态加密。一种是本地选项,该选项可用于 Tableau Server 的所有安装。另外两个选项需要服务器管理加载项,但允许您使用其他 KMS。

从版本 2019.3 开始,Tableau Server 添加了这些 KMS 选项:

  • 适用于所有安装的本地 KMS。下面介绍了这一点。

  • 作为服务器管理加载项一部分提供的基于 AWS 的 KMS。有关详细信息,请参见AWS 密钥管理系统

从版本 2021.1 开始,Tableau Server 添加了另一个 KMS 选项:

  • 作为服务器管理加载项一部分提供的基于 Azure 的 KMS。有关详细信息,请参见Azure 密钥库

Tableau Server 本地 KMS

Tableau Server 本地 KMS 使用管理服务器密文中介绍的密文存储过程来加密和存储主数据提取密钥。在此方案中,Java 密钥存储充当密钥分层结构的根目录。Java 密钥存储随 Tableau Server 一起安装。对主密钥的访问通过操作系统的本机文件系统授权机制进行管理。在默认配置中,Tableau Server 本地 KMS 用于加密数据提取。下面阐述了本地 KMS 和加密数据提取的密钥分层结构:

故障排除配置

多节点配置不正确

在 AWS KMS 的多节点设置中,tsm security kms status 命令可能会报告正常 (OK) 状态,即使群集中的另一个节点配置不正确。KMS 状态检查仅在运行 Tableau Server 管理控制器进程的节点上进行报告,而不在群集中的其他节点上进行报告。默认情况下,Tableau Server 管理控制器进程在群集中的初始节点上运行。

因此,如果另一个节点配置不正确,以致于 Tableau Server 无法访问 AWS CMK,这些节点可能会为将启动失败的各种服务报告错误状态。

如果在您将 KMS 设置为 AWS 模式后,某些服务启动失败,请运行以下命令以恢复为本地模式:tsm security kms set-mode local

在 Tableau Server 上重新生成 RMK 和 MEK

若要在 Tableau Server 上重新生成根主密钥和主加密密钥,请运行 tsm security regenerate-internal-tokens 命令。


“静态数据提取加密”是一项数据安全功能,使您能够在 .hyper 数据提取存储在 Tableau Server 上时对其进行加密。

Tableau Server 管理员可以对其站点上的所有数据提取强制执行加密,或者允许用户指定对与特定发布的工作簿或数据源关联的所有数据提取进行加密。

限制

必须将较旧的 .tde 文件数据提取升级为 .hyper 文件数据提取,然后才能对其进行加密。此操作会在加密作业过程中自动完成。有关数据提取升级的影响的详细信息,请参见数据提取升级为 .hyper 格式

无法使用此功能对临时文件和缓存文件进行静态加密。

无法使用此功能对工作簿 (.twb) 和数据源文件 (.tds) 进行加密。这些文件将包含元数据,例如数据库表列名称和格式设置说明。在某些情况下,它们可能包含一些行级别数据(如果其包括在筛选器中)。

其他数据文件(例如 Excel 或 JSON 文件)不使用此功能进行加密,除非在发布之前将它们转换为数据提取。

从服务器下载数据提取时,会对它们进行解密。

性能概述

后台程序负载增加

启动静态加密时,您可能会看到后台程序负载有轻微到中度的增加。加密和解密是计算密集型操作。静态加密内容会改变现有后台程序作业,并引入新作业以在后台程序上运行。后台程序负载的整体增加取决于受影响的数据提取的数量和大小,以及下面这些方案的应用频率。

  • 初始发布:在发布应对其使用的数据提取进行加密的工作簿或数据源时,加密在服务器的后台程序上进行。

  • Tableau Server 中的数据提取刷新:Tableau Server 上加密数据提取的完全和增量刷新消耗的 CPU 会轻微增加。

  • Tableau Bridge 和第三方应用程序(例如,Informatica、 Alteryx)中的数据提取刷新:这些流程将需要新的加密作业(对于任何刷新的数据提取都安排在后台程序上运行),因此会导致后台程序负载有轻微到中度的增加。

  • 在已经发布的工作簿和数据源中对数据提取进行加密和解密:如果静态加密的站点设置设为“启用”,则用户可以选择对 Tableau server 上已发布的工作簿和数据源中的数据提取进行加密或解密。根据数据提取的数量和大小,这会在使后台程序负载有轻微到中度的增加。

  • 更改站点的加密模式:将静态加密的站点设置切换到“禁用”或“强制”时,后台程序将分别对站点上的所有现有数据提取进行解密或加密。根据数据提取的数量和大小,这可能会显著增加后台程序的负载,直至所有数据提取均为未加密或已加密为止。

  • 轮转加密密钥:轮转加密密钥会导致后台程序使用全新的加密密钥对该站点上发布的所有现有数据提取进行重新加密。根据数据提取的数量和大小,这可能会显著增加后台程序的负载,直至所有数据提取均重新加密为止。

如果满负荷或超负荷运行,请考虑:

  • 添加额外的后台程序进程和资源。

  • 让用户对单独工作簿和数据源进行加密,而不是强制对整个站点进行加密,或者为不必要禁用加密的站点禁用静态加密。请注意,计划和临时数据提取刷新将优先于加密和解密作业。

可视化项加载时间和工作服务器负载增加

例如,在加载或与可视化项或仪表板交互时,查询性能在从磁盘加载到内存时将需要对数据进行解密一次。对于加载工作簿的第一个用户,这将导致工作服务器节点上的可视化项加载时间和 CPU 消耗轻微增加。这不会影响同时访问那些工作簿的其他用户,因为数据已在内存中解密。

对备份和还原的影响

备份中的加密数据提取将保持加密状态。由于加密数据提取的压缩效率不高,因此备份文件 (.tbks) 的大小可能会增加最多 50-100%。除其他因素外,大小增加还取决于所加密的数据提取数。由于交换加密密钥需要时间,因此对包含加密数据提取的备份进行还原所需的时间可能会轻微增加。

如果您的 Tableau Server 安装主要包含或只加密数据提取,请考虑在备份期间禁用压缩以显著缩短备份花费的时间。若要详细了解 TSM 备份,请参见tsm maintenance backup

在站点上强制实施静态加密

Tableau Server 管理员可对其站点上的所有数据提取强制实施加密。

  1. 在 Web 浏览器中,以服务器管理员身份登录到 Tableau Server。

  2. 转到要配置的站点。

  3. 单击“设置”

  4. 向下滚动到“静态数据提取加密”部分。
    单击“强制”以对发布并存储在该站点上的所有数据提取进行加密。
    对存储在站点上的所有现有数据提取进行加密可能需要一段时间。

  5. 单击“保存”

在站点上启用静态加密

Tableau Server 管理员可以允许用户指定对与特定发布的工作簿或数据源关联的所有数据提取进行加密。

  1. 在 Web 浏览器中,以服务器管理员身份登录到 Tableau Server。

  2. 转到要配置的站点。

  3. 单击“设置”

  4. 向下滚动到“静态数据提取加密”部分。

  5. 单击“启用”以允许用户根据需要对站点上的数据提取进行加密。
    更改为“启用”将会取消未完成的解密和加密作业。不会创建加密作业。

  6. 单击“保存”

在站点上禁用静态加密

  1. 在 Web 浏览器中,以服务器管理员身份登录到 Tableau Server。

  2. 转到要配置的站点。

  3. 单击“设置”

  4. 向下滚动到“静态数据提取加密”部分。

  5. 单击“禁用”以不允许站点上的加密数据提取。
    更改为“禁用”将对所有现有的加密数据提取进行解密。对存储在站点上的所有数据提取进行解密可能需要一段时间。

  6. 单击“保存”

查看所有站点的数据提取加密模式

  1. 在多站点服务器上,单击站点菜单上的“管理所有站点”

    注意:只有在您以服务器管理员身份登录后,才会显示“管理所有站点”选项。

  2. 单击“站点”

  3. 每个站点的加密模式显示在“静态数据提取加密”列中。

对已发布工作簿或数据源的数据提取进行加密或解密

注意:只有当静态加密的站点设置设为“启用”时,用于对与特定已发布工作簿或数据源关联的数据提取进行加密或解密的选项才可用。当站点设置为“禁用”时,所有内容都不加密。当站点设置为“强制”时,所有内容都将加密。
注意:您必须是所有者或管理员。

  1. 转到发布的工作簿或发布的数据源页面。

  2. 单击显示为“加密数据提取”或“未加密数据提取”的下拉菜单。

  3. 选择“未加密”。
    您将看到一条消息,指出“正在数据提取进行解密”。
    -或者-
    选择“加密”。
    加密作业将启动。

或者,您可以在卡片视图操作菜单、列表视图操作菜单和标题部分中的操作菜单上对数据提取进行加密或解密。

对多个项目进行加密或解密

  1. 转到“数据源”页面。

  2. 选中一个或多个数据源旁边的复选框。

  3. 在“数据源”页面的左上方,单击“操作”。

  4. 单击“加密”或“解密”。

查看单个项目的加密状态

  1. 登录到站点。

  2. 转到单个数据源页面。
    -或者-
    转到包含嵌入数据源的工作簿的单个工作簿页面。

  3. 加密状态显示在该页面上。

按加密状态筛选数据源

  1. 在该站点中,单击“浏览”

  2. 在右上方,单击“浏览:顶层项目”下拉菜单,并选择“所有数据源”。

  3. 单击筛选器图标。

  4. 向下滚动到“实时或数据提取”部分并选择一个筛选选项:“全部”、“实时”、“数据提取”、“未加密数据提取”、“加密数据提取”、“当前正在加密”或“当前正在解密”。

  5. 如果要在筛选结果中包括“实时到 .tde 文件”和“实时到 .hyper 文件”连接,请选中“包括 .tde 和 .hyper 文件”旁边的复选框。

按加密状态筛选工作簿

  1. 在该站点中,单击“浏览”

  2. 在右上方,单击“浏览:顶层项目”下拉菜单,并选择“所有工作簿”。

  3. 单击筛选器图标。

  4. 向下滚动到“实时或数据提取”部分并选择一个筛选选项:“全部”、“实时”、“数据提取”、“已发布”、“未加密数据提取”、“加密数据提取”、“当前正在加密”或“当前正在解密”。

  5. 如果要在筛选结果中包括“实时到 .tde 文件”和“实时到 .hyper 文件”连接,请选中“包括 .tde 和 .hyper 文件”旁边的复选框。
    将显示有至少连接与筛选器选择相匹配的任何工作簿。

查看加密或解密数据提取后台任务的状态

  1. 在站点中,单击“站点状态”。

  2. 单击“非数据提取后台任务”查看已完成和未完成的后台任务详细信息。
    注意:“非数据提取后台任务”包括与数据提取刷新不相关的所有任务,因此它包括加密作业。

  3. 在“任务”菜单中,选择“加密数据提取”或“解密数据提取”,并单击“应用”。

  4. 在“时间范围”菜单中,选择一个范围。
    您将会所有基于数据提取的已发布数据源和工作簿的“加密数据提取”或“解密数据提取”后台任务。

tabcmd 实用工具

tabcmd 命令行实用工具有用于控制提取加密的命令和选项。有关详细信息,请参见tabcmd文档。

在创建站点时指定数据提取加密模式

tabcmd createsite

在编辑站点时指定数据提取加密模式

tabcmd editsite

在列出站点时获取数据提取加密模式

tabcmd listsites --get-extract-encryption-mode

在将工作簿、数据源或数据提取发布到服务器时对数据提取进行加密

tabcmd publish "filename.hyper" –-encrypt-extracts

对站点上的所有数据提取进行解密

注意:根据数据提取的数量和大小,此操作可能会消耗大量的服务器资源。请考虑在正常工作时间之外运行此命令。

tabcmd decryptextracts

对站点上的所有数据提取进行加密

注意:根据数据提取的数量和大小,此操作可能会消耗大量的服务器资源。请考虑在正常工作时间之外运行此命令。

tabcmd encryptextracts

使用新的加密密钥对站点上的所有数据提取进行重新加密

您必须指定站点。

注意:根据数据提取的数量和大小,此操作可能会消耗大量的服务器资源。请考虑在正常工作时间之外运行此命令。

tabcmd reencryptextracts

有关详细信息,请参见reencryptextracts

Tableau Server Rest API

利用 Tableau Server REST API,您可以通过编程方式管理 Tableau Server 资源。可以使用此访问创建您自己的自定义应用程序,或者编写交互脚本以便与 Tableau Server 资源进行交互。

若要了解详细信息,请参见数据提取加密方法(链接在新窗口中打开)