400-606-2017
400-606-2017

数据可视化工具中的数据权限如何做?

2022年05月12日 |

数据可视化工具已经普及了很久,每个数据可视化工具都有自己的权限,这个是标配,但是如果说数据权限的话,这个就不是每款工具都有的。今天我们就拿云蛛系统这款数据可视化工具为例来说说数据权限到底该怎么做!

首先需要在配置文件中配置相关的信息,具体参考 【配置文件(特性配置)】 中的【用户自定义数据权限】

多数据源和单数据源是一样的,仅仅是数据源数量的不同,这里我们仅以单数据源为例。

首先在我们需要连接的数据源内,需要有业务id和云蛛系统用户id对应的表,不管是业务id和部门还是个人对应,最终落到数据表中都是业务id和云蛛系统的个人id一一对应,如下:

其中云yunzhu_userid这个是云蛛系统中的用户id,business_id则是该数据源中的业务id,即哪些用户可以有哪些业务数据的标识。

之后就是具体的数据表又或者view

这是一张具体的业务数据表,主要由name和value构成,而belong_id 则是我们上张表中的business_id,用于标识哪些数据属于哪些业务

这样用户和数据之间的关系就被关联了起来。而针对业务数据表中的belong_id 这个具体怎么设计这个是您来设计的,可以是上述说的一个int值,也可以是varchar值,诸如1,2,3,4这种格式的,都是可以的,因为这个业务数据值,是您自己设计又或者写SQL实现的。

那么具体逻辑是怎么实现的呢?

第一步:我们需要在配置文件中配置具体的信息。如下(此处只罗列关键信息):

jdbc.usermapping.user.yunzhu.column=yunzhu_userid

jdbc.usermapping.user.business.column=business_id

jdbc.usermapping.sql.business.alias=cobwebtimes_belong_id

jdbc.usermapping.sql=select yunzhu_userid,business_id from user_mapping

第二步:我们在我们的组件内配置相关需要数据源权限的SQL,比如:

select name,value

from table

where belong_id = cobwebtimes_belong_id

请一定注意,系统会自动甄别是否有 jdbc.usermapping.sql.business.alias 所设置的关键字如果有关键字,就会知道您启用了数据源权限。

第三步:系统如何运行?

系统组件得知自己要做数据源权限的时候,会取得云蛛系统自己的userid(该userid来自云蛛系统数据库的user_表中的userid字段),然后其会在用户数据源侧执行 jdbc.usermapping.sql 中所设定的SQL,userid会作为where条件传入,会以 jdbc.usermapping.user.yunzhu.column 中所设定的作为字段名称传入,同时会抽取 jdbc.usermapping.user.business.column 中的设定的字段作为业务id。

抽取出来的业务id,会在第二步中替换 jdbc.usermapping.sql.business.alias 所设置关键字 cobwebtimes_belong_id,从而完成数据权限。

第四步:如何设计?

这种数据权限的设计只需要设置,云蛛系统和您业务系统中的mapping关系,然后抽取这种mapping关系,进入实际表中抽取数据。具体的设计模式并不局限于上述这种简单模式,此处只是介绍最最简单的实现模式,已经工作模式。您可以参照这种模式,设计出适合自己的数据权限表结构。

商务咨询

电话:400-606-2017

技术支持

微信:cobwebtimes

电话:400-606-2017

微信

微博