Tableau Server 大规模用户权限管理

今天客户问了一个问题,正好图书出版也没有细致写这一章节,借此机会整理在此,后期修订时作为补充。 场景:集团企业在使用Tableau,通过Tableau Server为企业各业务经理、主管、员工多层次员工提供受控的权限访问。 问题:如何快速、有效地管理数据权限,确保数据安全。 作为大数据可视化的分析平台,Tableau Server提供了受控的数据访问,支持行级别的权限管理,实现的基本原理是将每位访问者的用户名与数据源的特定字段建立关联关系。 这里使用到了用户函数。 1、大规模受控数据访问的基本原理 大规模受控访问,必须在数据源中具备能与访问者匹配的字段,可以称之为“权限字段”。依据“权限字段”,对访问的用户标识匹配,仅显示匹配的数据明细,从而实现行级别的控制。 常见的“权限字段”为数据源中的用户相关字段,比如“地区经理”、“业务员”等字段。 最重要的两个用户标识是用户名及其归属的群组;如果同时匹配时,可以设置是同时满足还是满足一个即可访问——这里会用到逻辑的判断。 如图所示,假定数据源中有一个字段“地区经理”,分别与各个地区相对应,每个地区下面又可以包含各个城市和城市经理。在tableau Server访问时,我们希望不同的地区经理登录其账号时,只显示对应数据明细所构造的视图——即行级别数据安全管控,简称RLS。 2、大规模受控数据访问的条件和方法 大规模受控访问需要满足几个条件: 数据源中有对应的权限字段 Tableau Server有用户的信息 而关键在于如何将二者匹配起来,大规模部署需要自动化实现,此时就需要一个映射的函数。Tableau中提供了多种用户函数,常见有: Usename() FullName() IsUsename() IsFullName() IsMemberOf() UserDomain() 这里最重要的是Usename() 和IsMemberOf()函数。 以超市数据为例,如果希望每个地区经理只看他自己的数据,那么就需要判断用户登录的标识与Tableau Server中用户名的匹配情况。常见的判断是: USERNAME() = [地区经理] 由于这个判断是布尔,因此会自动创建一个判断的字段,将这个字段加入筛选器,就可基于登录用户对应的用户名,与数据库的字段匹配。 这种情况下,需要确保数据源的名称,和Tableau Server中的用户名对应。 在超市数据中,有6位地区经理,可以在Tableau Server中创建对应的用户。我在Tableau Online中,只能以邮箱为用户名,所以就需要通过计算建立二者之间的映射。为此,我添加了一个case when函数。   基于这样的关系,就可以直接使用以下的函数判断,从而实现的受控的访问: USERNAME()=[地区经理-online] 这里实现的是「地区经理」对数据的访问,如何同时对「城市经理」的数据管控呢? tableau Server没有用户层次的概念,只有用户和群组。对城市的判断和上面对“地区经理”一样,只需要增加一个逻辑判断即可。当然,由于有的人是地区经理,有的人是城市经理,此时就需要做一个二次的判断。比如: USERNAME()=[地区经理-online]  OR  USERNAME()=[城市经理]  这样,只需要满足其中之一,即可查看对应的数据。 ———————— 这种基于username的方法适用于以下情况,需要同时满足: 数据源中有对应的权限字段,比如“地区经理”“省区经理”甚至“城市经理”; Tableau Sever有对应的用户账号,用户名需要与数据源中保持一致,如果不一致的,需要使用case when函数建立映射; 支持对具有层级的字段同时做判断,比如地区、省份、城市,使用逻辑函数的OR判断,满足其中一个即可授权,这样确保可以查看最高层次对应的数据。Continue reading “Tableau Server 大规模用户权限管理”

【成长手记】74:看得开,方能看得远

终于把Tableau书稿全部提交完了,得以一丝喘息,写一篇日志。 前几天之前客如云的一位老客户打电话,说支付不能用,我说帮他看看,发现后台支付通道被更动了,于是咨询400客服,客服说当地的服务商和我联系。 昨天,手机号码16216121777的人打来电话,我说我是客户,想咨询一下问题,不料对方高声呵斥破口大骂,说我不地道如何云云。我虽然生气,却也心中喜笑颜开,一来我完全不需要理会他的质疑,我赠送客户设备不赚钱为了名声全身而退,不会因为他从中作梗而生嫌隙,二来我已经脱离了「Fuk-客如云」的邪恶联盟,除了这偶尔的恶心,不会对我有什么影响。 1、遥望昨日,且看今朝 事后我想这件事情,发现很多事后,我们都被世俗的舆论所欺骗,这些舆论来自于期待打造一个层次分明的阶层体系的官方舆论,和以寄生于这个阶层体系而卖力的寄生文学。 当年我在客如云不可谓不努力,相对于普通的销售而言,我技术娴熟,不以欺瞒客户追求短期的利益;相对于技术工程师而言,我具有一定的营销、心理学功底,所以我写的客如云的系列文章,即便客如云的CEO和CEO,也会刮目相看,并在不了解我的“邪恶面目”之前邀请我到成都见面。 即便如此,我咄咄逼人甚至目空小人的风格,注定与这个体系分道扬镳。有很多人说,只要努力,你几乎可以在任何一个领域取得成就。是的,理论上完全说的通,实践中又无法证伪,不过,这也许就是这句话本身最大的病毒。这样的心灵鸡汤和成功勉励,把我们每个人牢牢地固定在当前的位置上,并为所在的组织付出最后的一丝努力和喘息。 我人生中的「客如云时期」虽然时间短,但注定是我创业之后第一次如此卖力,即便和如今做Tableau相比,也毫不逊色。但是,百倍的努力并未获得哪怕与之相对应的1/10的回报,我不仅仅被厂家某些领导暗地封杀,而且损失了不少的金钱,而对方则以冠冕堂皇的理由把这一切合法化。从客户的角度见,虽然我也结交了一些朋友,但是大部分的客户都再也与我没有任何交集——这个圈子我是陌生者,也是无法真正融入的领地。与我高傲的内心相比,餐饮及其相关的服务业都太low了,以至于我都不好意思给人提起;更遑论这个圈子中的客户能对我的帮助。 我在客如云时期遇到的几个人,都把我视为恶人、毒虫,甚至包括某些客如云的高管,虽然他们也对我无可奈何。我当年的徒弟,跟着我学习,却背后和我玩心眼,是我第一个忍不住想要动手的人;有的合作伙伴,明显要利用我帮他们要回款,却不说明真实的意图,等到我发现被欺骗,我就执意以名誉惩罚他们,最后一千元买回我内心的安宁;而那些被我骂到CEO和领导那里的渠道总监等高管们,更是恨不得置我于死地,指示山东的渠道经理扫清我的余毒。 如今事情已过,说来甚快,只因为如今已经看透这一切。 2、看得开,望得远 之前一位大学朋友给我说要“眼高手低”——视野和眼界一定要高,而做事情则要脚踏实地。不过,这肯定不适合于你在泥潭里面的时候,哪怕是水坑或者低丘也不行。 不是脚踏实地不对,而是此时的眼界已经被周围束缚了,任你如何努力,都如同坐井观天的青蛙。我相信,一定不是所有的青蛙都是目光短浅,一定有心怀梦想的青蛙误入水井。 昨天,我就是那只误入的青蛙,幸好如今已经换了一片池塘,才能平心静气的说着昨天的故事,不畏揭短,只为了让自己更加清醒。 因此,当我和客如云的几位总监级别的老人聊天,听说他们的离职,我是非常开心的。我相信,他们也是那只误入的青蛙。一家心怀梦想,但坏在梦想上的企业,不值得有梦想的人坚守到死,在不值得付出的水井里,死而不屈是一种耻辱。 我的幸运在于,“我善于悄悄地放弃”,从不在我确认不值得坚守的地方死守。 所以在客如云业务半年之后,我就已经暗渡陈仓,准备我的Tableau业务,我是坚定的“长期主义者”,我从毫无短期益处的博客开始,从免费的讲座和培训开始,换取了自己快速的成长。我把Tableau学习的前因后果,写在了我的书中的前言中。 虽然去年Tableau的业务并非顺利,但是总体而言,我无需面对过多的「客如云时期」的勾心斗角,无需面对公司和渠道经理的双重欺压,而且面对的客户都是高端客户,我更愿意用十年的长远期望,维护与他们每一位利益相关者的关系。 所以慢慢成就了今年的展露头角。   3、2020 ALL IN TABLEAU 2020年,马上就要32日的生日了,我为自己准备了最棒的礼物——一本充满心血的书籍。 还没有什么,比这样的自我回报,更让我开心呢? 加油!   Apr 20, 2020  8:00 老家

Tableau Server从10.5到2019.4升级步骤

注:客户服务记录,兼实施后的客户资料 。 1、远程10.5tableau server服务器并备份 (1)以管理员身份打开命令提示符,并导航到 bin 目录。 建议首先在文件中找到bin,然后复制到命令中。 (2)使用tabadmin命令备份   2、文件复制到最新的服务器上 使用远程连接24服务器,在24服务器上再远程25服务器,window server之间可以直接复制粘贴。 复制到24服务器之后,复制到默认的Tableau server 备份路径中: C:\ProgramData\Tableau\Tableau Server\data\tabsvc\files\backups\ (ProgramData默认为隐藏文件夹,可以在地址中直接输入) 3、恢复备份 官方说明见:https://help.tableau.com/current/server/zh-cn/db_restore.htm#db (1)停止服务器。在命令提示符处,键入: tsm stop (2)从备份文件进行还原。在命令提示符处,键入: tsm maintenance restore –file <file_name> 在上面的行中,将<file_name> 替换为要用来进行还原的备份文件的名称。 注意:在还原 .tsbak 文件时,Tableau Server 会自动创建其当前 data 文件夹的副本,将它命名为 tabsvc.bak-*,并将它放在 C:\ProgramData\Tableau\Tableau Server\data 中。此文件夹是 Tableau Server 的应急备份,在备份还原过程中出现问题时,Tableau 支持人员或许会用到它。 (3)重新启动服务器: tsm start     4、验证链接 备份之后,确认数据没有变化   注意,原来的用户也被替换为此前版本的Tableau账号。       附件: 从10.5升级到2019.4      

【Tableau】如何实现嵌入自动刷新

定期在浏览器中自动刷新 Tableau Server 视图 (官方网站,回答客户问题时查看) 问题:无法将 Tableau Server 配置为定期在浏览器中自动刷新视图。 环境:Tableau Server 解决方案:使用以下涉及到在网页中嵌入视图的解决方法之一:  选项 1: 选择 :refresh URL 参数 在网页的 <head> 部分,添加 <meta http-equiv=”refresh” content=”#”>,其中 # 是刷新间隔秒数 URL参数与值: “:refresh=yes” 说明:使用 Tableau Server 或 Tableau Online 中的最新数据来呈现视图。有关详细信息,请参见刷新数据或暂停自动更新。 提示:若要不断刷新视图,请在网页的 <head> 部分中添加 <meta http-equiv=”refresh” content=”#”> 其中 # 是刷新的间隔秒数。 http://tabserver/views/Date-Time/DateCalcs?:embed=yes&:refresh=yes 选项 2  将 Tableau JavaScript API 的 refreshDataAsync () 方法与Continue reading “【Tableau】如何实现嵌入自动刷新”

成长手记73:“内外无别”随笔

昨日出差奔劳一日休息的早,早上六点起来整理第一轮书稿。一直到八点多洗刷时,看着水流哗哗,突然想起来一个词“内外无别”。 前几日在老家,改造了洗澡和洗菜的地方,希望娘亲随时能有热水可用;即便如此,他们还是不舍得用水,更不舍得用电,相比之下,我虽然谨慎,也是大手大脚,洗脸溜掉的水让我娘看了觉得甚是可惜。 可是到了酒店,我无形中反而“嚣张”起来,总觉得自己付了钱,就可以肆意的去使用,慢悠悠的挤痘痘,随意水流哗哗;慢悠悠洗澡,随意水流东逝。 所以突然飘过“内外无别”,我还是被震惊了一下。我觉得自己远离真正的境界。 我不记得是2009年参加佛教夏令营还是前几年在净名精舍的课程上第一次听过这个词语,后来再也没有用过。 如果我能把酒店当作家里,我对待每一滴水的态度随时保持一致,那应该是怎样的样子?我的内心就会不容易被杂尘所染,不易被外物所束。 推己及其他万物,对待客户如同对待家人,对待生灵如同对待自己,视一切如己出。那当如何? 佛家说内外无别,源自识外无境。 此乃大乘,此乃觉悟。     Apr 1, 2020随时