Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Score big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount

Reply
charlottesmn
Frequent Visitor

Power BI RLS with list of IDs

Hello!

I have a use case where, for an embedded PowerBI report, I receive a list of IDs when calling the USERNAME() function (ie. id1,id2,id3,id4 for a user with 4 ids). A comma separates each ID.  

I had previously implemented a logic where PowerBI de-concatenates the ID and filters the table as needed. However, with more than 3 ids I am encountering performance issues and PowerBI times out.

Here is the code:

VAR currentuser = USERNAME ()
VAR isconcat = CONTAINSSTRING(currentuser, ",")

RETURN 
IF(isconcat,
CONTAINSSTRING("," & currentuser & ",", "," & [user_id] & ","),
[user_id] = currentuser)

 

I have also tried the following, which seems more performant but still not enough

VAR currentuser = USERNAME()
VAR UserIDs = SUBSTITUTE(currentuser, ",", "|")
RETURN
IF(
PATHCONTAINS(UserIDs, [user_id]),
TRUE(),
[user_id] = currentuser
)


Any idea on how I could solve this issue? 

Thank you

2 REPLIES 2
lbendlin
Super User
Super User

PATHCONTAINS is usually fast enough. How long is your list ?

 

In your example you are mixing boolean and text results. Probably not what you intended?

 

Your entire code should be more like

 

 

PATHCONTAINS(SUBSTITUTE(USERNAME(), ",", "|"), [user_id])

 

 

Thank you for the insight, I will try it now.

 

The biggest string I am getting is a list of 8 IDs, but my user table (where the RLS is applied) had almost 200,000 unique users. It is then related to my fact table with one-to-many relationships

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.