You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入式Power BI:行级别安全批量添加多用户并分配不同角色

批量为Power BI App Owns Data添加多用户并分配不同角色的实现方法

当然可以实现批量添加多用户并分配不同角色啦!其实你已经用到了GenerateTokenRequest的identities参数,它本身就支持传入一个多个EffectiveIdentity实例的列表,刚好能满足你的批量需求。下面给你具体的实现思路和代码示例:

步骤1:整理用户-角色映射关系

首先把需要配置的用户、对应的角色以及关联的数据集ID整理成一个可迭代的集合,你可以根据实际需求从数据库、配置文件或者其他数据源读取这些数据,这里用硬编码示例演示:

// 定义用户与角色的映射集合,可按需扩展
var userRoleMappings = new List<(string Username, List<string> Roles, string DatasetId)>
{
    ("user1@yourdomain.com", new List<string> { "Role A" }, report.DatasetId),
    ("user2@yourdomain.com", new List<string> { "Role B" }, report.DatasetId),
    ("user3@yourdomain.com", new List<string> { "Role A", "Role C" }, report.DatasetId)
};

步骤2:批量生成EffectiveIdentity实例

循环上面的映射集合,为每个用户创建对应的EffectiveIdentity对象,并加入列表:

var identities = new List<EffectiveIdentity>();
foreach (var mapping in userRoleMappings)
{
    identities.Add(new EffectiveIdentity(
        username: mapping.Username,
        roles: mapping.Roles,
        datasets: new List<string> { mapping.DatasetId }
    ));
}

步骤3:传入GenerateTokenRequest生成请求参数

把批量生成的identities列表传入GenerateTokenRequest即可:

var generateTokenRequestParameters = new GenerateTokenRequest(
    accessLevel: "View",
    identities: identities
);

额外注意事项

  • 每个用户可以分配多个角色(比如示例中的user3),但要确保这些角色已经在对应的数据集里提前创建好,且名称完全匹配(大小写敏感)
  • 用户名需要符合Power BI的格式要求,通常是用户的用户主体名称(UPN),比如xxx@yourdomain.com
  • 如果你的业务场景是为不同用户单独生成令牌(而非一次性应用多个身份),可以循环为每个用户单独创建GenerateTokenRequest并生成令牌,这样每个令牌只对应一个用户的权限

内容的提问来源于stack exchange,提问作者Omkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:13