Dynamic Row-Level Security for Power BI

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 46

  • @luigir2459
    @luigir2459 ปีที่แล้ว +1

    Perfect timing on my end. Now that our data is somewhat usable we are finally creating reports which need RLS. Thank you :)

  • @Craeson1
    @Craeson1 3 หลายเดือนก่อน

    Took me three days of truoble-shooting until i found your video and got the solution I was looking for. You are a life-saver Christine ❤❤

  • @JustinDS
    @JustinDS 11 หลายเดือนก่อน

    I think I am your new BIGGEST FAN! Thank you so much for these walk thrus!

  • @daryam55
    @daryam55 7 หลายเดือนก่อน +3

    This is THE best video on Power BI RLS! Thank you!

    • @bi-ome
      @bi-ome  7 หลายเดือนก่อน

      thanks! 😄

  • @jonellemorgan515
    @jonellemorgan515 6 หลายเดือนก่อน +1

    This must be the first video I've seen that has helped me understand RLS. Thank you so much :)

    • @bi-ome
      @bi-ome  6 หลายเดือนก่อน

      Glad it helped!

  • @coreyayers3623
    @coreyayers3623 ปีที่แล้ว +1

    Really good video! Thanks for sharing!

    • @bi-ome
      @bi-ome  ปีที่แล้ว

      Thanks!!

  • @zzota
    @zzota ปีที่แล้ว +1

    Very useful, as always 🙂

    • @bi-ome
      @bi-ome  ปีที่แล้ว

      Thanks!! I've been stoked to get to this one for a while, glad to finally get it out there. :)

  • @MrCutlash
    @MrCutlash 2 หลายเดือนก่อน

    Appreciate this video, this info is hard to find. I read that if you're using dataverse and set directquery in the datasource, the row level security is automatically accounted for. I assume performance won't be so great. just another tidbit of info.

    • @bi-ome
      @bi-ome  2 หลายเดือนก่อน

      Yeah, I’ve seen that but haven’t tried it - I’ll have to check the performance sometime. The role info is in a Dataverse table too, so you might be able to mimic it with import mode if you got creative with it.

  • @Sirigineedi_Navann
    @Sirigineedi_Navann ปีที่แล้ว +1

    Simply superb 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

  • @juanperezacuna9082
    @juanperezacuna9082 4 หลายเดือนก่อน

    Thank you so much, this video tip help me a lot!

  • @burcucumcokguzelsin
    @burcucumcokguzelsin 2 หลายเดือนก่อน

    Yu explained very clear thank you!

  • @alvegrande7398
    @alvegrande7398 6 หลายเดือนก่อน +1

    Loved the videos but you may want to zoom in when youre writing dax or pointing to sumn because its so small i can barely see it

    • @bi-ome
      @bi-ome  6 หลายเดือนก่อน

      Thanks yeah - I have started doing resolution zoom on all the new videos. Can’t fix the old ones retroactively :/

  • @erinfield1943
    @erinfield1943 5 หลายเดือนก่อน

    5:38- What if we do the DAX, set up the role and then each user sees nothing?
    Edit- figured out that when you go in to view as other user, you have to enter in their e-mail address, not their name.

    • @bi-ome
      @bi-ome  5 หลายเดือนก่อน +1

      If you've published it, you need to add users to the role in the web. If you're doing this with a large group of people, usually there's an Active Directory group hanging around that has all the people in it, so you can add that instead of having to do it for each person. You can "test as" a person to see what they would see in desktop, so make sure that works first before publishing.

  • @summertime688
    @summertime688 3 หลายเดือนก่อน

    Does this allow second level managers to see all the people that align through them (in their downline), not just their direct reports?

    • @bi-ome
      @bi-ome  3 หลายเดือนก่อน

      Yep! That's what PATHCONTAINS() does for us as opposed to just referencing the manager UPN.

  • @hnaidu.pro21
    @hnaidu.pro21 6 หลายเดือนก่อน

    I'm the 100th person to like the video. Very Informative. Can't be better than this.

  • @Xwap
    @Xwap 5 หลายเดือนก่อน +1

    The resolution of your monitor is much higher than your recording resolution, which creates distorted text for viewer.

    • @bi-ome
      @bi-ome  5 หลายเดือนก่อน

      Thanks for the feedback, I am learning as I go! It should be better in the newer videos, I've been doing 300% UI zoom and doubled the recording resolution.

  • @bingoo8960
    @bingoo8960 4 หลายเดือนก่อน

    Very helpful video.
    Just a request can you please share the pbix file used in the video
    for better understanding
    or just data

    • @bi-ome
      @bi-ome  4 หลายเดือนก่อน

      Sure, here you go: github.com/chpayton/BI-Files/blob/main/Misc/AdventureWorks%20-%20RLS.pbix
      I just did a video today on how to get this same database into a free SQL server and connect in PBI if that's helpful - it's in my recent video feed

  • @morgannicholsspector4203
    @morgannicholsspector4203 3 หลายเดือนก่อน

    This is a wonderful resource-thank you!
    However, with this solution, it seems users are able to see data of those above them as well-so you have a solution so that users only see data of people in their down line?

    • @bi-ome
      @bi-ome  3 หลายเดือนก่อน +1

      It shouldn’t if it’s set up right. If you take the CEO as an example, the person who reports to the CEO looking at a report will will not be able to see the CEO’s rows, because the CEO’s path does not contain that user’s UPN - the pathcontains function would return false for those rows. The people reporting up under that person do have that person in their path, so the manager would see their rows.

    • @morgannicholsspector4203
      @morgannicholsspector4203 3 หลายเดือนก่อน

      @@bi-ome thank you! :) I got it sorted

  • @erinfield1943
    @erinfield1943 5 หลายเดือนก่อน

    So glad I found you.

  • @mirrrvelll5164
    @mirrrvelll5164 7 หลายเดือนก่อน

    Great and simple!
    Question, I guess it is quite advanced, but do you have any link or idea how to achieve the same but taking in account that my data model is made from direct query source, where RLS according to my knowledge and googling, cant be applied. Test as user doesn't function.
    Do you have an idea how to do that?

    • @bi-ome
      @bi-ome  7 หลายเดือนก่อน

      RLS on a direct query table has to be super basic - it won't let you use the more complex functions. What you could do instead though is try taking your filtering logic, putting that in an import table, and then relating it to the DQ table, assuming that the RLS rules don't have to be direct query--

  • @seyiabayomi
    @seyiabayomi ปีที่แล้ว

    Thanks for sharing. In a case where an email can access 2 or more sales orders?

    • @bi-ome
      @bi-ome  ปีที่แล้ว

      Not sure what you mean - that sounds like a perfectly normal case to me, usually you'd apply the RLS to the "owner" (or similar field), where they would be able to see any rows they are listed as an owner of, their manager can see those same rows (and the rows of others that report to them) and so on.

  • @tinaflemons263
    @tinaflemons263 9 หลายเดือนก่อน

    Great Video, thanks for sharing. How could this approach be extended to the region, district, or branch access view?

    • @bi-ome
      @bi-ome  9 หลายเดือนก่อน +1

      Thanks, that's a great question. It depends if it needs to be hierarchical, or if you just need region members to see rows for their region as an example. The key to all this dynamic filtering stuff is to have a table that holds the users and a column for what you're wanting to filter on. So if you're doing by region, you'd have a table with your employees, their region ID, and then relate that back to your primary data table on the region ID. Then you can apply the RLS to the employee table (making sure the filtering direction goes towards the fact table) on USERPRINCIPALNAME() and they'll see rows for their region (don't forget to add "everyone" to the role in the web).
      If you're wanting to filter on the hierarchy of those things, you need data that holds that hierarchy to use for PATH() and PATHCONTAINS(), which is usually the tricky thing to get a hold of - that's why it's easier to go via people "reports to" because that information is usually readily available. :)

    • @tinaflemons263
      @tinaflemons263 9 หลายเดือนก่อน

      @bi-ome for example, if a General manager logs in, they would see all the District that roll up the region. A manager would see all the branches that roll up the District. Etc.

  • @sergegagne874
    @sergegagne874 7 หลายเดือนก่อน

    Pretty AWESOME, thank you!

  • @gauravchouhan4703
    @gauravchouhan4703 11 หลายเดือนก่อน

    How to deal if one person has 2 or more managers ?

    • @bi-ome
      @bi-ome  11 หลายเดือนก่อน +1

      I've never heard of someone having more than one direct manager in a hierarchy, but if that's your case you don't have to use PATHCONTAINS(). If you can get the usernames of everyone you want considered concatenated in a field, you could just use CONTAINS() on that field instead.

  • @jiashengfan2269
    @jiashengfan2269 5 หลายเดือนก่อน

    Thank you that's great stuff

  • @ShivahariGopalakrishnan
    @ShivahariGopalakrishnan ปีที่แล้ว

    life saver!

  • @namangarg7023
    @namangarg7023 4 หลายเดือนก่อน +1

    Nothing is visible in ur video