我创建了一个本机应用程序,并将Azure Active Directory中的权限设置为仅查看,然后使用它通过Power BI Embedded(使用C#SDK)公开报告。但是,编辑JavaScript将报表置于编辑模式相对简单,从而公开基础数据。使用Power BI Embedded时,是否有任何方法可以防止编辑报告,或者确保只共享允许的数据?
答案 0 :(得分:1)
如果修改JS代码可以覆盖报告的编辑,但是该用户将无法保存或修改报告本身,因为授予的EmbedToken应该没有写许可。
在创建EmbedToken时,您作为报告所有者,声明您要在该特定报告上授予用户哪些功能。如果您不授予用户“写”访问权限,则他们只能通过修改JS在本地进行操作。
这在https://docs.microsoft.com/en-us/rest/api/power-bi/embedtoken/reports_generatetoken
中定义为accessLevel
如果问题是数据访问,则可以使用嵌入式行级安全性(RLS)来实现。步骤如下:https://docs.microsoft.com/en-gb/power-bi/developer/embedded-row-level-security
在“建模”下(在Power BI Desktop中),选择“管理角色”
[City State] = "Sparta"
。var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
的内容更改为类似var generateTokenRequestParameters = new GenerateTokenRequest("view", null, identities: new List<EffectiveIdentity> { new EffectiveIdentity(username: "Spartacus", roles: new List<string> { "Spartan" }, datasets: new List<string> { "datasetId" }) });
的内容。请注意,用户名,角色和数据集都是必需的。
使用这种方法,即使用户确实操作了JavaScript以使报表处于编辑模式,他们也将无法访问由DAX语句过滤掉的数据。