Forum Discussion

vini_udenia's avatar
vini_udenia
Icon for Helper I rankHelper I
6 years ago
Solved

Row Level Security to be excluded from some visual

Hi,

I need to implement security wherein the data should be filtered based on the user logging in:

Level 1 -- Director: All Data 

Level 2 -- Country Head: Data for managers reporting to him + Few visuals which are at Organization level

Level 3 -- Managers: Data for himself/herself + Few visuals which are at Organization level

 

I'm able to achieve the first part using RLS. Not able to prevent Row level security from being applied to the visuals which are at Organization level.

 

Few solutions online suggest to create a copy of the dataset (Dataset 2) for the organization level visuals, tried doing this but then the report filters (created using Dataset 1) do not work on the visuals (created on Dataset 2). If I create a join between the 2 datasets then RLS gets applied to Dataset 2 as well. 

  • Anonymous's avatar
    Anonymous
    6 years ago

    vini_udenia I am not aware of any functionality at this point that allows RLS on toggling visual objects on the page... You would only be able to accomplish this by using variations of the report. ie, creating multiple reports.

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    vini_udenia I am not aware of any functionality at this point that allows RLS on toggling visual objects on the page... You would only be able to accomplish this by using variations of the report. ie, creating multiple reports.

    • vini_udenia's avatar
      vini_udenia
      Icon for Helper I rankHelper I

      Thanks Seth! I've tried this option and it works to have 2 sepearte reports in this case.. Now hoping the user agrees! 🙂

  • v-lid-msft's avatar
    v-lid-msft
    Icon for Community Support rankCommunity Support

    Hi vini_udenia ,

     

    We can use measure as a visual filter as a workaround which will work in some situation:

     

     

    Then we create a measure and use in the visual filter:

     

    FilterByName =
    IF (
        ISFILTERED ( 'Table'[Name] ),
        IF ( SELECTEDVALUE ( 'Table 2'[Name] ) IN FILTERS ( 'Table'[Name] ), 1, -1 ),
        1
    )

     

     


    BTW, pbix as attached.

     

    Best regards,

    Community Support Team _ Dong Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • vini_udenia's avatar
      vini_udenia
      Icon for Helper I rankHelper I

      Hi, Can you please elaborate this solution a bit further.

  • Anonymous's avatar
    Anonymous
    Not applicable

    One solution is to use USERELATIONSHIP() in a measure and have two dublicate dimensions tables, one with RLS and one without, then use USERELATIONSHIP() to change the dimension table to the one with RLS for the visuals you want filtered.  

     

    CALCULATE( Measure , USERELATIONSHIP( Data , RLS dimension))