Power BI 中具有多列的行级安全性

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

为了能够为每个用户提供访问级别,我执行了以下操作。 我有一个主数据库,其中有买家和卖家、交易量、交易价值等列...

enter image description here

现在我希望每个用户都能看到特定的买家。 为此,我创建了一个包含两列 UserBuyer name 的数据库 我将这两个数据库与买家栏连接起来,并将条件写入角色内,它起作用了。

enter image description here

[user]=USERNAME()
问题是,我的经理要求我添加一个新条件,即每个用户都可以看到买家卖家的客户。

这意味着需要两列。 考虑到我的两张桌子是和买家相连的,我不知道如何解决这个问题。 其实我想让用户1看到买家或卖家是A、B的所有行。(两列上的命令条件)

而且我需要说的是,买方和卖方列的唯一值是相同的。 (我们一共有112位客户,既可以是买家也可以是卖家)

powerbi dax
1个回答
0
投票

您没有分享您的模型,因此我假设您有 2 个表,第一个用于用户访问和买家喜欢的交易。 您可以创建一个 CC 表,其中包含每个用户所有可能的买家和卖家组合:

UserBuyerSellerAccess =
UNION (
    SELECTCOLUMNS (
        UserAccess,
        "User", UserAccess[User],
        "Customer", UserAccess[Buyer]
    ),
    SELECTCOLUMNS (
        Transactions,
        "User", UserAccess[User],
        "Customer", Transactions[Seller]
    )
)

然后就可以修改角色定义的过滤条件了:

[User] = USERNAME() && (
    RELATED(UserBuyerSellerAccess[Customer]) = Transactions[Buyer] ||
    RELATED(UserBuyerSellerAccess[Customer]) = Transactions[Seller]
)
© www.soinside.com 2019 - 2024. All rights reserved.