PowerBI 中使用DMV获取数据

20

很多人你不提,也许就会忘记


最近手上有件工作着实挺无聊的,在Excel统计用户及相关报表权限信息,因为历史遗留原因,在好多地方都有统计,然后统计的还都不全,这维护起来就挺难受,虽然不难,但很无聊,所以就想明明报表里有权限的信息,后台有用户的信息和用户报表的权限信息,为啥还要手工再去维护实时性这么差的Excel呢?

用户的基本信息和用户对应的报表角色信息可以找后台要,给开一个只读账号,在视图里把数据组合起来就好,那报表里具体角色的权限语句呢?

但是,问题又来了,通过以上三个工具并不能实时获取数据,需要打开报表手动导出来,十几份报告,每一次更新报告都要重新导出着实是太麻烦了。

有没有办法可以实时获取呢,这时,首先想到的其实还是通过DMV模型获取,因为Power BI Helper 和Document Model底层都是通过C#代码来获取这些信息的,这对于我来说是有困难的,这时想到了通过SSMS连接工作区时是可以看到数据集的角色等信息的啊(PowerBI数据集单表刷新(一)),其中也有使用XMLA,通过Tabular Editor来刷新数据,那理论上PowerBI里也是可以实时获取这些信息的

先来看下通过DMV查看权限语句的表达式

接下来在PowerBI中使用DMV查询,先获取工作区连接信息

接下来在PowerBI中连接数据源,服务器填写工作区连接,数据库填写报表的数据集名称

登录账号

接下来就可以看到数据了

但是这里只用权限表达式,没有相应的表和角色信息,所以还需要导入其他信息,代码如下

select * from $SYSTEM.TMSCHEMA_TABLES
select * from $SYSTEM.TMSCHEMA_ROLES

这些语句也没必要记,在Dax studio中通过关键字查询然后试一下结果就好了

至此我们就导入完成了报表中权限部分需要的信息



本篇文章来源于微信公众号: PowerBI木小桼

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注