Forum Discussion
RLS Dax Query
Hi Team,
I want to implement RLS on Product table and each user can see the sales for multiple products. I have created below DAX code and it's working fine . Want to check if there are other ways to rewrite same code (( in case if hits perf )
Example:
DAX Expression on Product Table
CALCULATE (
COUNTROWS ( 'Product' ),
FILTER (
VALUES ( 'Product'[Alias] ),
AND('Product'[Alias] = USERPRINCIPALNAME (),MAX('Product'[IsValidUser]) = TRUE())
)
) > 0
Relationships
1) ProducRLS (ProductID) * --> Product (ProductID)
2) Product(ProductID)<-- *Sales (ProductID)
[email protected] --> will not see any data because they are not valid user
ProductRLS Table
| ProductID | Alias | IsValidUser |
| 1 | [email protected] | TRUE |
| 2 | [email protected] | TRUE |
| 1 | [email protected] | FALSE |
Product:
| ProductID | Name |
| 1 | Pepsi |
| 2 | Coco |
Sales
| DateId | ProductID | Sales |
| 20230501 | 1 | 100 |
| 20230401 | 1 | 300 |
| 20230501 | 2 | 200 |
Thanks,
Abhiram
Product[ProductID] IN CALCULTATETABLE(VALUES(ProductRLS[ProductID]),ProductRLS[Alias]=USERPRINCIPALNAME ()&&ProductRLS[IsValidUser]=TRUE())
1 Reply
- wdx223_DanielCommunity Champion
Product[ProductID] IN CALCULTATETABLE(VALUES(ProductRLS[ProductID]),ProductRLS[Alias]=USERPRINCIPALNAME ()&&ProductRLS[IsValidUser]=TRUE())