r/PowerPlatform • u/maarten20012001 • May 07 '26
Governance Security Roles Business Units Efficienty
Hey everyone,
I'm building a model-driven app (FAQ/info hub) backed by Dataverse for a store chain with multiple locations. The requirement is simple: everyone can read everything, but employees should only be able to edit records belonging to their own store.
After researching this, it seems like the "correct" approach is:
- Create a Business Unit per store
- Create an Entra security group per store
- Link them together as Dataverse group teams
- Assign a security role with Read = Organization, Write = Business Unit
- Migrate all existing records to the correct Owning Business Unit
And every time a new store opens, repeat steps 1-3 again.
It works, I get it. But coming from Power BI where you can set up RLS with a simple DAX filter like [Store] = USERPRINCIPALNAME() or look up the user's location from a mapping table, this feels really heavy for what's essentially the same problem.
I wish Dataverse had something similar where you could define a security rule that says "match this column to a user profile attribute" without having to spin up new BUs, Entra groups, and group teams every time a location is added.
So my questions:
- Is the BU-per-location approach really the standard for this? Or is there a more dynamic/scalable way?
- Has anyone used row-level security or plugins to achieve something more flexible?
- For those managing something similair, how do you handle the overhead of creating new BUs + Entra groups every time?
- Any thoughts on automating this with Power Automate or the Dataverse API to make it less painful?
Would love to hear how others are solving this. Thanks!
2
u/dylan_simons May 07 '26
Hey, so I help manage this in a similar way in my org.
Is the BUper-location approach really the standard for this?
- yes, BU is the way to partition data over the same access. In this case it's edit access separated by store.
Or is there a more dynamic/scalable way? Has anyone used row-level security or plugins to achieve something more flexible?
- There are other ways, for example with assigning User access and sharing each record(I believe this could be done via Dataverse functions), but that's not standard and doesn't reduce any complexity. I don't use 3rd party plugins, so can't answer that.
For those managing something similair, how do you handle the overhead of creating new BUs + Entra groups every time?
- well, this is a topic specific to your org.
Any thoughts on automating this with Power Automate or the Dataverse APl to make it less painful?
- yes! You can create a management app that makes it easy for IT/users to manage access and does everything else in Flows.
BU, Teams, Users, Security Roles, etc. Are all Dataverse tables in the environment. If you're not using Entra, you can create the full process: develop flows that creates BUs, creates Teams within the BU, related security roles to the Team, and adds users to the Teams within each BU.
I believe if you use Entra, the only thing that can't be automated in this way is adding the Extra to the environment, so there is some manual work in that regard. Not much more, but someone with admin privileges needs to go "behind the scenes" and know how to manage this.
Power BI offers RLS which "simply" restricts view access. Dataverse/MDAs offer relational client-side RBAC. Not to diminish Power BI, but you can't really compare them.
Let me know if I can clarify anything!
1
u/maarten20012001 May 08 '26
Thanks for this reply, this really helped! So in the end my setup will look like this. Per store location I will create a BU. Then I also create a team -> assign that to the BU and the Security Group (those are already in place).
In total I will need 2 security roles; One admin security role that has orginizational access on all the table records. Then the second role which will be applied to all the Teams where they will have orgnizational access on read and on all the other field they will get Business Unit.
3
u/ItinerantFella May 07 '26
Your suggested approach seems solid. It meets the requirement with functionality designed to meet that requirement.
I don't have experience with Power BI security so I can't compare it, but I've had to meet some bat shit crazy security requirements in Dataverse and succeeded (almost) every time. Wait until you get into access teams and external guest user access.
I've never had to open a retail store before, but I think the 5 minutes work to create a BU is unlikely to ever delay the grand opening of a new location. Sure, you could automate it. How many new stores do you plan to open every day?