如何解决:将PowerBI Embedded连接到SSAS多维数据集时,“操作返回了无效的状态代码'BadRequest'”

问题描述 投票:1回答:1

我有一个(内部的)SSAS(多维)多维数据集,具有与Power BI的实时连接。然后,必须将其显示在具有Power BI Embedded的门户中。我使用的方法是:“应用拥有数据”并使用“主用户”帐户。这部分有效。

但是当我尝试添加行级安全性(RLS)时,它会不断出错。该报告将显示给客户(组织外部)。根据他们的登录信息(认证由门户网站本身持有),他们需要查看自己的数据。

我尝试使用JSON脚本进行连接,添加用户名,角色,数据集和customdata。用户名包含实际的活动目录用户名,该用户名在SSAS中具有权限。customdata包含我要过滤的部分。目前已将角色“ Test”用于测试目的。

角色'Test'是在具有读取权限的SSAS中设置的,而特定的'公司'维是通过以下“允许的成员集”设置的:STRTOMEMBER('[Dim Company]。[BK_Company]。&[{'+ CUSTOMDATA()+'}]')]

这基于使用此方法作为解决方案的另一个主题。

我已经尝试使用USERNAME()作为RLS的过滤器,但是似乎我只能在此字段中使用实际的帐户名。我们当前的活动目录中未包含所有客户名称。

var rls =新的EffectiveIdentity(@“ domain \ powerbiportal”,新的列表{report.DatasetId},新的列表{“ Test”},“ 19164”);

var tokenRequest = new GenerateTokenRequest(“ view”,identities:new List {rls});

var tokenResponse = client.Reports.GenerateTokenInGroupAsync(“ [ID]”,report.Id,tokenRequest).Result;

发送JSON

{

“ accessLevel”:“视图”,

“身份”:[

{

  "username": "domain\\powerbiportal",

  "roles": [

    "Test"

  ],

  "datasets": [

    "[dataset]"

  ],

  "customData": "19164"

}

]

}

我得到的错误如下:

操作返回了无效的状态代码'BadRequest'

json powerbi ssas powerbi-embedded multidimensional-cube
1个回答
0
投票

联系Microsoft支持后,问题已解决。

首先,解决方案是在角色的“单元格数据”标签中取消选中“启用读取权限”框。在我的情况下,该单元是空的,但是由于某种原因,它仍然造成了问题。

第二,要过滤的语句必须是:{STRTOMEMBER('[Dim Company]。[BK_Company]。&['+ CUSTOMDATA()+']')}代替STRTOMEMBER('[Dim Company]。[BK_Company]。&[{'+ CUSTOMDATA()+'}]')]

感谢Microsoft的支持

© www.soinside.com 2019 - 2024. All rights reserved.