目录

介绍

业务需求——第2节——(部分保留在数据库中的安全配置)

解决方案概念

在数据库中创建访问级别字段

更新用户过滤器

测试访问控制

结论


介绍

这是在Tableau中实现行级数据安全性的第2部分。在上一篇文章中,我解释了如何 使用Tableau Server组中保留的安全性配置实现Tableau中的行级数据安全性——第1部分。我建议先阅读上一部分。

在这一部分中,我们将使用部分保留在Database中的安全性配置在Tableau中实现行级数据安全

业务需求——第2节——(部分保留在数据库中的安全配置)

现在让我们扩展在数据属性级别限制访问的要求。我们有一个名为“字段类别”的数据库字段。由于我们具有与损益表相关的数据,因此以下是数据库中字段类别列中的数据。

  • 营业额
  • 销售成本
  • 毛利
  • 分行直接费用
  • 直接费用
  • 部门营业利润率
  • 营业利润率
  • 财务前营业利润。成本/收入
  • 融资 成本/收入
  • 融资后营业利润。成本/收入
  • 团体费用(管理费)
  • 净利
  • 直接费用(HO)
  • 小组开销

我们已经在上面讨论了4个不同级别的组织经理访问级别(总裁,直属经理,分支经理和分支部门经理),现在企业希望基于用户组织经理级别可以查看这些字段类别。

基于字段类别的访问控制矩阵包含每个级别都应可见的类别:

上述矩阵的翻译如下:

总裁:他应该能够看到所有分支机构,所有部门的所有字段类别。

直属经理:他应该只能看到他所有部门的部门,从销售到营业利润的字段类别。

分公司经理:他应该能够查看其分公司的所有部门,从销售到净利润的字段类别。

分行部门经理:他应该能够看到其分行部门,涉及从销售到营业利润的字段类别。

解决方案概念

由于此需求是对第1节“业务需求”中提到的需求的扩展,因此我们将使用以前完成的所有工作,例如创建服务器组,将用户分配给各个服务器组,然后创建一个计算字段,该字段为在表格中用作过滤器以限制数据。这种配置对于Tableau查看以及Tableau认证都是重要的,因此请检查与安全性和更多主题相关的Tableau 认证转储。

现在,我们将按照以下步骤操作,以达到增强的要求

  • 在数据库中创建访问级别字段
  • 更新用户过滤器
  • 测试访问控制

在数据库中创建访问级别字段

由于我们有4个级别的访问控制,因此我们将在数据库中创建一个长度为4的字符字段,每个字符将代表允许的访问级别。来自数据库的每条记录都会带来有关这些列的信息。

以下是此字段XXXX的格式及其翻译。

此访问级别字段的可能组合如下所示。空单元格意味着特定级别无法访问数据。以下屏幕截图说明了所有组合的访问控制。

我们在excel文件中提供了示例数据,以使您更好地理解和说明。

更新用户过滤器

我们将在用户过滤器的计算字段中使用ACCESS_LEVEL数据库字段来标识允许的访问级别并相应地编写逻辑。

例如,现在我们将通过复制它并编写总裁级别的逻辑来修改已经写入的用户过滤器计算字段,如下所示:

我们添加了一个条件检查数据库字段ACCESS_LEVEL的第一个字符。如果第一个字符为“E”,并且登录的用户是PRESIDENT 组的成员,则返回 1,否则返回0。

通过这种方式,可以基于服务器组中用户的成员资格以及基于ACCESS_LEVEL 的记录的允许访问级别来控制数据。简而言之,借助ACCESS_LEVEL 字段,也将基于字段类别级别来控制数据访问。

一旦我们为所有级别编写了代码,用户筛选器逻辑将如下所示:

在更新用户过滤器计算字段的代码之后,在过滤器窗格中应用此字段以过滤数据访问,如下所示:

测试访问控制

一旦应用了用户过滤器,现在就可以验证所有4个级别的逻辑。

检查总裁的数据访问

用户Muhammad是总裁,应该能够看到所有分支机构和部门,并且他应该能够看到字段类别。为了检查他的可访问数据,让我们选择用户Muhammad,如下所示:

从上面的屏幕截图可以清楚地看到,Muhammad能够看到公司的所有分支机构和所有部门,而且他还能够看到所有字段类别,即总裁可以看到第一个字符为“E”的ACCESS_LEVEL 字段中的所有组合。

检查Line Manager——服务

Wasim用户是服务线经理,应该能够看到公司服务部门的所有分支机构。关于字段类别,线经理可以查看从销售到营业利润的字段类别。

为了检查他的可访问数据,让我们选择用户Wasim,如下所示:

从上面的屏幕截图中可以清楚地看到,Wasim能够查看服务部门的所有分支机构以及ACCESS_LEVEL 字段的第二个字符为“L”的所有字段类别,而生产线经理可以查看

检查分支机构经理的数据访问权限——Sharjah

用户Jeffry是Sharjah分支机构的经理,应该能够查看Sharjah分支机构的所有部门。为了检查他的可访问数据,让我们选择用户Jeffry,如下所示:

从上面的屏幕截图中可以清楚地看到,Jeffry能够查看Sharjah分支的所有部门以及ACCESS_LEVEL 字段的第三个字符为“B”的所有字段类别,这对于分支经理是可见的。

检查分支部门经理的数据访问权限——Sharjah服务经理

用户Manoj是Sharjah服务经理,应该只能看到Sharjah中的服务部门。为了检查他的可访问数据,让我们选择用户Manoj,如下所示:

从上面的屏幕截图中可以清楚地看到,Manoj只能看到Sharjah分支机构的服务部门以及ACCESS_LEVEL 字段的第四个字符为'D'的所有字段类别,分支机构经理可以查看。

结论

我们已经一一检查了所有四个级别,并看到按照ACCESS_LEVEL 数据库字段中完成的配置可以查看数据。

尽管这也可以通过使用服务器组来解决,但可能会更加乏味和冒险,因为任何新字段类别的添加都将需要添加新服务器组,并且在这种情况下,必须检查所有IF条件。因此,在这种情况下,建议继续使用一种混合方法,在该方法中,可以在服务器组中放置更一致的逻辑,而可以将随时间更改的配置放置在数据库级别。

Tableau中的行级数据安全性——第2部分相关推荐

  1. Tableau中的行级数据安全性——第1部分

    目录 Tableau中的数据安全性概述 本文是关于什么的? 业务需求(Tableau Server组中保留的安全配置) 解决方案概念 分步解决方案 在Tableau Server上创建Tableau ...

  2. sql 如何设置行级锁_SQL Server 2016中的行级安全性

    sql 如何设置行级锁 With the release of SQL Server 2016 comes many great new features. One of these is the i ...

  3. sql 如何设置行级锁_SQL Server中的行级安全性简介

    sql 如何设置行级锁 In this article, I'm going to discuss Row-Level Security in SQL Server. RLS or Row-Level ...

  4. 行级共享锁和行级排他锁_Power BI中的行级安全性简介

    行级共享锁和行级排他锁 Analyzing data with Power BI has always been fascinating to me. With ever-growing data c ...

  5. 教你在Tableau中绘制蝌蚪图等带有空心圆的图表(多链接)

    作者:Jeffrey A. Shaffer 翻译:蒋雨畅 校对:丁楠雅 本文约2300字,建议阅读10分钟. 本文将通过分享多种方法,包括成功的与失败的尝试,来讲解如何在Tableau中创建蝌蚪图等带 ...

  6. tableau实战系列(三十四)-教你如何在tableau中实现3D效果作图

    前言 我们知道,目前 Tableau 还不支持 3D 图表的实现.但是,如果你希望在 Tableau 中呈现立体效果,我们可以另辟蹊径,来实现一些简单的. 柱形图很常见,因为是平面的,也被称为条形图. ...

  7. html树状图右侧_如何在 Tableau 中创建控制图?

    本文作者:Jose Valero 控制图是用于研究流程如何随时间变化,并确定制造或业务流程是否在统计控制状态下的图表. 我相信这对每家公司来说都是一个有益的工具,所以在这篇文章中,我将尝试如何在 Ta ...

  8. Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...

    何为详细级别 详细级别,英文Level of detail,Tableau用它来描述计算发生的级别,或者说计算在哪个层级发生.由于BI工具的相似性,在Power BI里也可以用类似的思想对计算进行描述 ...

  9. tableau可视化_如何在Tableau中构建自定义地图可视化

    tableau可视化 Sometime last year, I got fascinated with bubble charts when I saw a data visualization v ...

最新文章

  1. asp.net的Ajax学习进阶
  2. 02-CSS基础与进阶-day7_2018-09-07-21-27-32
  3. Unity3D(UE4)加载倾斜摄影数据OSGB格式
  4. MyBatis学习总结_Mybatis查询之resultMap和resultType区别
  5. 说说程序员应该知道的术语(中文+英文)
  6. 基于django的视频点播网站开发-step10-后台评论管理功能...
  7. 初学者求经典java学习视频
  8. 部分AMD RAID驱动程序需及时升级
  9. msxml3.dll 执行页内操作时的错误
  10. ADS1256的使用
  11. 如何理解相关性系数(pearson、spearman、kendall)
  12. 量化投资学习-7:图解股市的基本面、技术面、市场环境面的关系
  13. r语言寻找1000以内的质数
  14. 讲讲BW/4 HANA和BW on HANA的区别
  15. 教程:从零开始 使用Python进行深度学习!
  16. 江苏省小学生计算机装备标准,江苏省小学信息技术装备标准汇编.doc
  17. python大数据工程师 培训_大数据工程师需要学习哪些?
  18. 发布/上传Jar包到Maven中央仓库 - 史上最详细
  19. 面试被问API 网关,怎么破?
  20. Sliding Window滑动窗口(单调队列)

热门文章

  1. java运行时异常与一般异常有何异同_JVM | 虚拟机运行时数据区域划分和使用详解...
  2. suse linux vnc 桌面号,在SUSE Linux下安装VNC的方法
  3. 人间妄想男神 | 王一博系列爱豆明星壁纸
  4. linux open出现乱码,OpenStack 数据库中文乱码问题
  5. debian nginx php mysql_记一次Debian下PHP环境的搭建(nginx+mariadb+PHP)!
  6. QLibrary 出现错误的排查
  7. LeetCode-----斐波那契数列
  8. 图的邻接矩阵(C语言实现)
  9. 实现后台高级查询(高级版)
  10. 云计算:OpenStack、Docker、K8S(Kubernetes容器编排工具)的演进史 | 附推荐阅读