The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi,
I am facing some issue while implementing the RLS for below fact table.
main_fact_table
job_no | year |
IT123 | 2023 |
IT123467 | 2024 |
IT235 | 2023 |
IT2345 | 2024 |
IT345 | 2023 |
IT334 | 2024 |
IT3647 | 2023 |
IT3654 | 2024 |
IT6584 | 2023 |
IT6574 | 2024 |
user_access
user name | job_no | year |
sourav | IT12 | 2023 |
jeet | IT6 | 2023 |
kunal | IT6 | 2024 |
sourav | IT3 | 2024 |
jeet | IT2 | 2023 |
kunal | IT1 | 2024 |
rupam | IT3 | 2024 |
rupam | IT6 | 2023 |
as i mentioned there is two table.
1)main_fact_table (this is the main facr table)
2)user_access (this is the details of user who has access to the perticuler data)
these two table are disconnected table hence they have no relation between them, and we are using the coloumn "job_no" (user_access) to decide the access for a perticuler user but in the "user_access" table column "job_no" dose not contain the full value we need to implement wildcard here for example in user_access one user named "sourav" has access to the row job_no in fact table whose value starts with "IT12" AND "IT3" so sourav should she all the rows in "main_fact_table" whose "job_no" starts with "IT12" AND "IT3" and corrosponding year also should take in considaration
in this case sourav should see in "main_fact_table" as below shown
job_no | year |
IT123 | 2023 |
IT334 | 2024 |
@Anonymous
Create the following measure for RLS, replace "sourav" with any other name to test. When you deploy after testing, you should replace the VAR __User = "sourav" with VAR __User = USERPRINCIPALNAME()
RLS User =
VAR __User = "sourav"
VAR __UserAccessFilter =
FILTER ( user_access, user_access[user name] = __User )
VAR __Fjob =
SELECTEDVALUE ( main_fact_table[job_no] )
VAR __Fyear =
SELECTEDVALUE ( main_fact_table[year] )
VAR __Result =
NOT ISEMPTY (
FILTER (
__UserAccessFilter,
CONTAINSSTRING ( __Fjob, user_access[job_no] )
&& user_access[year] = __Fyear
)
)
RETURN
__Result
Assign the meaure in the RLS setup as follows:
You may test it this way: Sourav should be able to see three lines not two.
Files is attached.
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
Thanks for the help, but in my actual data in the fact table many column(more than two) are present and while implementing the DAX and RLS for all users no value is showing for every user the data is showing blank.
could you please tell what went wrong?
User | Count |
---|---|
12 | |
9 | |
6 | |
6 | |
5 |
User | Count |
---|---|
24 | |
14 | |
14 | |
9 | |
7 |