我有一个(本地)SSAS(多维)多维数据集,与 Power BI 有实时连接。然后它必须显示在带有 Power BI Embedded 的门户中。我使用的方法是:“应用程序拥有数据”并使用“主用户”帐户。这部分有效。
但是当我尝试添加行级安全性(RLS)时,它不断给出错误。该报告将显示给客户(组织外部)。根据他们的登录信息(身份验证由门户本身持有),他们需要查看自己的数据。
我尝试连接,使用 JSON 脚本,添加用户名、角色、数据集和自定义数据。用户名包含在 SSAS 中具有权限的实际活动目录用户名。customdata 包含我要过滤的部分。角色“测试”当前用于测试目的。
角色“测试”在 SSAS 中设置为具有读取权限,特定“公司”维度设置为使用以下“允许的成员集”:STRTOMEMBER('[Dim Company].[BK_Company].&[{'+CUSTOMDATA() +'}]')
这是基于使用此作为解决方案的另一个主题。
我曾尝试使用 USERNAME() 作为 RLS 的过滤器,但似乎我只能在此字段中使用实际帐户名。我们当前的活动目录中没有包含所有客户姓名。
var rls = new EffectiveIdentity(@"domain\powerbiportal", new List { report.DatasetId }, new List { "Test" }, "19164");
var tokenRequest = new GenerateTokenRequest("view", identities: new List { rls });
var tokenResponse = client.Reports.GenerateTokenInGroupAsync("[ID]", report.Id, tokenRequest).Result;
发送 JSON
{
“访问级别”:“视图”,
“身份”:[
{
"username": "domain\\powerbiportal",
"roles": [
"Test"
],
"datasets": [
"[dataset]"
],
"customData": "19164"
}
]
}
我得到的错误如下:
操作返回了无效的状态代码“BadRequest”</p>