Implementing Row-Level Security in Power BI

The best method to implement row-level security in a published Power BI model or SSAS Tabular model consumed from the Power BI service will depend to some degree on your data structure and requirements.  The method I demonstrate here is one of the most flexible approaches and one that I commonly use in my projects.

Paul Turley

Paul Turley

Microsoft Data Platform MVP, Principal Consultant for 3Cloud Solutions Specializing in Business Intelligence, SQL Server solutions, Power BI, Analysis Services & Reporting Services.

5 thoughts on “Implementing Row-Level Security in Power BI

  1. Hey Paul,

    Thanks for sharing, it’s very useful the way that you treat BLANK() value.
    Below I share my code DAX that I apply to CRM Dynamic 0365 the idea is :
    1/ you look up for the position (and their business unit ) of the person who log in then you stock the result in a variable.
    Sales Rep – only see their own data
    Sales Manager – see the whole team data
    Business Unit:

    2/ Then depend on the position you show them what they can see using SWITCH():

    //position of UPN
    VAR Position_Rule = LOOKUPVALUE(
    User[Sales Rep], USERNAME()
    //business unit of UPN
    User[Business Unit],
    User[Sales Rep], USERNAME()

    //if the UPN’s postion is


    //Representative : display only their data

    “Sales Representative”,[Sales Rep] = USERNAME(),

    //Sales Manager > display all the data relevant to their team and them self

    “Sales Manager”, ([Sales Manager] = USERNAME() || [Sales Rep] = USERNAME()),


    Dung Anh

Leave a Reply

%d bloggers like this: