目录
Tableau中的数据安全性概述
本文是关于什么的?
业务需求(Tableau Server组中保留的安全配置)
解决方案概念
分步解决方案
在Tableau Server上创建Tableau Server组
创建用户筛选器(Tableau Desktop中的计算字段)
在工作簿中应用用户筛选器以进行访问控制
测试访问控制
结论
继续...
Tableau中的数据安全性概述当我们谈论Tableau中的数据安全性时,我们想到了各种选择,例如我们可以仅基于数据库实现安全性,或者可以基于Tableau Server组和用户筛选器实现安全性,甚至可以使用混合方法应用安全性。
在Tableau提供的所有可用数据安全性选项中,哪一种是最佳方法,这是很难一齐回答的问题。该问题的答案取决于基于组织结构和业务模型的某些因素。
如果您的组织结构保持静态并且不经常更改,则服务器组可能是一个不错的选择。但是,对于组织结构和安全规则频繁更改的组织而言,面向数据库的安全配置可能是更好的方法。
总体而言,在满足当前和未来业务需求的情况下,混合方法可能是一种更成功的选择。
本文是关于什么的?本文旨在提供一种使用两种方法处理行级数据安全性的端到端思想:
- 使用Tableau服务器组的数据安全性(仅在服务器组中保留配置)
- 使用混合方法的数据安全性(将服务器组中的配置与数据库一起保留)
在阅读完本文之后,用户将能够很好地理解该概念,并将该技术应用于他们的实时项目。
我们将看到基于实时需求的数据安全逐步实现。本文分为两个部分。
在第一部分中,我们将使用Tableau Server组来保留安全性配置并将此配置用于数据访问控制。在第二部分中,配置部分将保留在数据库中,我们将看到如何使用混合方法。
有关处理数据安全性(使用Tableau User Filter选项),可以参考Tableau中的数据安全性 文章。
业务需求(Tableau Server组中保留的安全配置)为了便于说明和实现示例目的,我们选择了金融机构的数据子集。数据集包含与两个部门和两个业务和支持部门的总部相关的数据。
在此组织中,下面提到了四个访问级别:
- 总裁——可以查看所有部门和所有分支机构的公司所有数据
- 直属经理——他负责任何单个业务,例如财务、人力资源等,因此他可以查看所有分支机构的业务数据。
- 分公司经理——他负责其分公司,因此他可以查看其分公司所有部门的数据。
- 分支机构部门经理——他负责分支机构中的单个部门,因此他应该只能看到其分支机构中部门的数据。这是最低的访问级别。
以下是此数据集中的部门:
以下是此数据集中的分支:
以下是用户列表:
现在的要求是根据以下安全矩阵进行访问:
以下是实现上述实现安全性要求的高级步骤:
- 在Tableau Server上创建服务器组
- 在各自的服务器组中添加用户
- 创建用户筛选器(Tableau Desktop中的计算字段)
- 在工作簿的工作表中应用用户过滤器以进行访问控制
- 测试访问控制
Tableau Server中的组是一个保存用户信息的对象。您可以基于在Tableau Server中本地创建的活动目录用户创建组。
为了在Tableau Server中创建组,请登录到Tableau Server,选择您的站点并通过以下屏幕快照中提到的导航进入“组”菜单:
将打开以下屏幕:
单击添加组按钮:
单击添加组按钮:
它将打开屏幕以添加组。如果使用的是Active Directory,请选择“Active Directory组”选项,否则请选择“本地组”选项。
通过分析业务需求,我们可以将各组分为三个主要类别。下图演示了应创建以处理业务需求的每个组的类别、名称和逻辑。
如下所示,在Tableau Server中添加以下组:
在服务器组中添加用户
为了在站点中添加用户,请按如下所述从链接转到用户页面:
添加网站中的所有9位用户:
下一步是按照我们之前针对每个用户业务角色的计划,为用户分配各自的服务器组。
以下是我们需要分配用户的组:
为了将组分配给用户,请按照以下步骤操作。例如,让我们将服务器组分配给Manoj。
单击用户菜单,转到用户Manoj并单击三个点。它会打开一个小菜单,选择“组成员身份”选项,如下所示:
现在,选择适用于该用户的组:
单击保存”按钮以保存用户Manoj的组分配。
我们特意选择了具有最多分配组的分支部门用户。对“用户服务器组分配”表中提到的所有用户重复相同的步骤。
创建用户筛选器(Tableau Desktop中的计算字段)创建服务器组后,下一步就是创建一个计算字段,该字段将用作每个组中的过滤器。
为了创建此计算字段,请打开tableau桌面,单击以创建一个计算字段:
将其命名为“用户过滤器”,并在其中写入以下条件:
ISMEMBEROF() 是Tableau的内置函数,该函数检查登录的用户是否是传递给此函数的服务器组的成员。
CMPCODE是引用分支数据的字段。此列中的值可以是SHJ(Sharjah)或MCT(Muscat)。
DEPARTMENT是指部门的字段。此列中的值可以为不适用任何部门的Parts,Service或者Null。这将在本文的第二部分中进行处理。这种情况适用于不属于任何特定部门的数据,例如与组级别有关的数据,只有总裁才能看到这些数据。
例如,如果登录的用户是PRESIDENT组的成员,则条件将返回值1,否则将返回的值0。
为了简单起见并出于解释目的,仅首先显示总裁,随后需要将所有级别的逻辑添加到同一计算字段中。
因此,完整的逻辑如下所示:
编写“IF”条件以确保仅当用户是其所有相关服务器组的成员时返回1,例如,当Sharjah part Manager是BRANCH-DEPT-MANAGER、SHARJAH-SHJ和PARTS服务器组的成员时,将返回1, CMPCODE (包含location的字段)的值为SHJ (指向Sharjah),DEPARTMENT字段的值为Parts。
这是为上面提到的业务需求编写的一个实现,当然,如果需求更加复杂,它可能会变得更加复杂。
我们将在本文的第二部分中处理更复杂的需求,在该部分中,我们将部分配置保留在数据库中。
在工作簿中应用用户筛选器以进行访问控制以下是数据中的部门和分支机构:
用户过滤器准备就绪后,需要将“用户过滤器 ”应用于工作表以控制数据访问。如下所示,将“用户过滤器 ”放置在过滤器架中:
它看起来像这样:
现在,由于我们已将安全筛选器应用于工作簿,因此将根据分配的组来限制部门和分支机构的数据。
测试访问控制让我们检查不同用户的数据访问权限:
检查总裁的数据访问
用户Muhammad是总裁,应该能够看到所有分支机构和部门。为了检查他的可访问数据,让我们选择用户Muhammad,如下所示:
从上面的屏幕截图可以清楚地看出,Muhammad能够看到公司的所有分支机构和所有部门。
检查Line Manager的数据访问——零件
米奇(Mickey)用户是零件生产线经理,应该能够看到公司零件部门的所有分支机构。为了检查他的可访问数据,让我们选择用户Mickey,如下所示:
从上面的屏幕截图可以清楚地看到,Mickey能够看到部件部门的所有分支机构。
检查Line Manager的数据访问权限——服务
Wasim用户是服务线经理,应该能够看到公司服务部门的所有分支机构。为了检查他的可访问数据,让我们选择用户Wasim,如下所示:
从上面的屏幕截图可以清楚地看到,Wasim能够查看该Service部门的所有分支机构。
检查分支机构经理的数据访问权限——Sharjah
用户Jeffry是Sharjah分支机构的经理,应该能够查看Sharjah分支机构的所有部门。为了检查他的可访问数据,让我们选择用户Jeffry,如下所示:
从上面的屏幕截图可以清楚地看出,Jeffry能够查看Sharjah分支的所有部门。
检查分支机构经理的数据访问——Muscat
用户Yusra是Muscat分公司的经理,应该可以看到Muscat分公司的所有部门。为了检查他的可访问数据,让我们选择用户Yusra,如下所示:
从上面的屏幕截图可以清楚地看到,Yusra能够看到Muscat分支的所有部门。
检查分支部门经理的数据访问权限——Sharjah零件经理
用户Yousaf是Sharjah零件经理,应该只能看到Sharjah中的零件部门。为了检查他的可访问数据,让我们选择用户Yousaf,如下所示:
从上面的屏幕截图可以清楚地看到,Yousaf可以看到Sharjah分支的零件部门。
检查分支部门经理的数据访问权限——Sharjah服务经理
用户Manoj是Sharjah服务经理,应该只能看到Sharjah中的服务部门。为了检查他的可访问数据,让我们选择用户Manoj,如下所示:
从上面的屏幕截图可以清楚地看到,Manoj可以看到Sharjah分支机构的服务部门。
检查分支部门经理的数据访问权限——Muscat零件经理
用户Ahmad是Muscat的零件经理,应该只能看到Muscat的零件部门。为了检查他的可访问数据,让我们选择用户Ahmad,如下所示:
从上面的屏幕截图可以清楚地看出,Ahmad能够看到Muscat分支的零件部门。
检查分支部门经理的数据访问权限——Muscat服务经理
用户Ani是Muscat服务经理,应该只能看到Muscat中的服务部门。为了检查他的可访问数据,让我们选择用户Ani,如下所示:
从上面的屏幕截图可以清楚地看出,Ani可以看到Muscat分支机构的服务部门。
结论我们已经一一检查了所有九个用户,并验证了每个用户都只能按照公司设置的配置查看其相关数据。我们处理了服务器组中的所有配置。维护Tableau Server组中的安全性非常灵活,因为您可以仅通过在服务器组中分配和删除用户来管理和修改访问级别。
这种方法的一个缺点是,如果在组织中添加了任何新部门或分支机构,则需要修改用户筛选器计算字段。因此,在组织结构变化非常频繁的情况下,应避免使用此方法。
因此,建议在规划和实现Tableau中的安全性时分析组织的结构和组织层次结构的变化趋势。
继续...在Tableau中实现行级数据安全性的第2部分中,我将说明如何使用安全配置部分保存在数据库中来实现相同的功能。