Return UPN in Dynamic RLS Measure
Short answer
B You must use the USERPRINCIPALNAME() function to return the user principal name (UPN), not USEROBJECTID().
Question
Key Takeaways
Distinguishing between DAX identity functions is tested; the common trap is confusing USEROBJECTID() with USERPRINCIPALNAME() when a UPN is required.
This scenario tests dynamic row-level security (RLS) in a Fabric semantic model where USERNAME() returns blank. The page establishes that to return the user principal name (UPN), you must use USERPRINCIPALNAME(), not USEROBJECTID().
Common mistake: Choosing Yes because USEROBJECTID() returns a user identifier, but it returns the Object ID (GUID), not the UPN.
Expert Analysis
Why the Answer Is Correct
The correct answer is No because the USEROBJECTID function returns the security identifier (Object ID/GUID) of the current user, not their user principal name (UPN). To return the UPN, the measure must be updated to use the USERPRINCIPALNAME function. Therefore, the proposed solution does not meet the stated goal.
Why the Other Options Are Wrong
Option A (Yes) is incorrect because it assumes USEROBJECTID will return the UPN format (e.g., [email protected]), which is false. USEROBJECTID returns a system-generated GUID string representing the user's directory object, which cannot substitute for a UPN in dynamic RLS filters expecting an email format.
Community Comment Notes
Commenters unanimously agree that USERPRINCIPALNAME is the correct function for returning the UPN. As nappi1 noted, the "user principal name (UPN) of a user is returned by the USERPRINCIPALNAME function".
Official Reference
https://learn.microsoft.com/en-us/dax/userprincipalname-function-dax
This link opens the official vendor documentation in a new tab.
Exam Strategy
When a question asks for a specific user attribute (UPN, Object ID, or domain\user), memorize the exact DAX function that returns it: USERPRINCIPALNAME(), USEROBJECTID(), and USERNAME() respectively. Do not interchange them.
Community Votes
100% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 3 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 3
-
nappi1 👍 2 Answered Buser principal name (UPN) of a user is returned by the USERPRINCIPALNAME() function
-
Pegooli 👍 2 Answered BUSERPRINCIPALNAME() is the correct answer. So B is correct
-
shorymor 👍 2 Answered BAnswer is correct. you should use USERPRINCIPALNAME()
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All DP-600 Questions
Access 115 questions with complete answers and detailed explanations.
View Full DP-600 Practice Test →