Return UPN in Dynamic RLS Measure

Answer Correct answer: B — You must use the USERPRINCIPALNAME() function to return the user principal name (UPN), not USEROBJECTID().

Note: This section contains one or more sets of questions with the same scenario and problem. Each question presents a unique solution to the problem. You must determine whether the solution meets the stated goals. More than one solution in the set might solve the problem. It is also possible that none of the solutions in the set solve the problem. After you answer a question in this section, you will NOT be able to return. As a result, these questions do not appear on the Review Screen. Your network contains an on-premises Active Directory Domain Services (AD DS) domain named contoso.com that syncs with a Microsoft Entra tenant by using Microsoft Entra Connect. You have a Fabric tenant that contains a semantic model. You enable dynamic row-level security (RLS) for the model and deploy the model to the Fabric service. You query a measure that includes the USERNAME() function, and the query returns a blank result. You need to ensure that the measure returns the user principal name (UPN) of a user. Solution: You update the measure to use the USEROBJECTID() function. Does this meet the goal?

  1. Yes
  2. No Correct Answer

Community Votes

B
100%

100% of anonymous learners picked answer B. Votes are pick records left by other test-takers — they are not the verified answer.

Community Insight

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().

Choosing Yes because USEROBJECTID() returns a user identifier, but it returns the Object ID (GUID), not the UPN.

Community Discussion (3 comments)

nappi1 👍 2 Selected: B
user principal name (UPN) of a user is returned by the USERPRINCIPALNAME() function
Pegooli 👍 2 Selected: B
USERPRINCIPALNAME() is the correct answer. So B is correct
shorymor 👍 2 Selected: B
Answer is correct. you should use USERPRINCIPALNAME()

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

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

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.

Related Analysis

Practice All DP-600 Questions

Access 115 questions with complete answers and detailed explanations.

View Full DP-600 Practice Test →

← Back to DP-600 Study Guide