Dynamics 365 Security Model: Business Units, Teams and Who Sees Whose Records

The rule for choosing business units, teams and hierarchy security, a defensible register of who can see and export what, and the order for changing a live model without anyone losing access.

Business units or teams? If the requirement is simply that reps see their own records and managers see their team's, use owner-based security with the manager hierarchy: user-level privileges in the security role plus hierarchy security, with no extra business units. Create business units only when the organisation genuinely partitions data, such as legal entities or branches that must not see each other. To change a live model without anyone losing visibility, rehearse it in a sandbox copy of production, record what each persona can see first, add new access before removing old access, reassign ownership in logged batches you can reverse, and retest with real users after every batch.

Should you use business units or teams to control who sees whose records?

Start from the requirement, not the feature list. Most organisations that ask this question want one of a small number of things, and each has a mechanism that fits it. Business units are the heaviest tool in the model: every user belongs to exactly one, every security role is scoped through one, and moving people between them has side effects. That is why the default answer is owner-based security with hierarchy security, and why business units are reserved for data that genuinely has to be partitioned.

The rule we apply when designing or reviewing a model is below. Where the table says "business unit", read it as a decision that needs a written reason, because it is the choice that is hardest to undo later.

RequirementMechanism that fitsWhy
Reps see their own records, managers see their teamUser-level privileges plus the manager hierarchyNo structure to maintain beyond the manager field on each user.
A manager oversees people who sit in other business units or countriesPosition hierarchy instead of manager hierarchyPositions are independent of the business unit structure.
A group of people works a shared pool of records, such as a regional deskAn owner team (or a Microsoft Entra group team) that owns the recordsOwnership by the team keeps access stable when individuals join and leave.
A few people need access to one specific record, such as a key accountAn access team on that recordRecord-level access without a new owner or a new role.
Branches or legal entities must not see each other at allBusiness units with business unit-level privilegesThe platform enforces the partition on every query.
Some users work across several partitionsModernized business units, with roles assigned from more than one business unitMatrix access without flattening the partition for everyone.
Salary, margin or identity numbers visible to only a fewColumn security profilesThe problem is a column, not a record.
A regulator requires hard separation of data and administrationSeparate environmentsBusiness units share one database, one set of administrators and one set of customisations.

How does owner-based security with the manager hierarchy work?

Every user- or team-owned record carries an owner and an owning business unit. A security role then grants each privilege (create, read, write, delete, append, append to, assign, share) at a depth: User, Business Unit, Parent: Child Business Units or Organization. A rep with User-level read on opportunities sees the opportunities they own, plus anything shared with them and records owned by a team whose security role grants its members that access. That is the whole of "reps see their own".

Hierarchy security adds "managers see their team's" without widening the role. Once hierarchy modelling is enabled and the tables are included, a manager gets access to records owned by the people below them, to the depth you configure. There are two models, and choosing the wrong one is a common cause of managers who suddenly see nothing.

  • Manager hierarchy uses the Manager field on the user record. A direct manager gets read, write, append and append to on records owned by their direct reports; managers higher up the chain get read-only access. The manager must be in the same business unit as the report or in its parent business unit.
  • Position hierarchy uses positions you define and assign to users, independent of the manager field and of business units, so it works for managers whose teams sit in other business units.
  • Hierarchy security never grants a privilege the manager does not have at all: the manager still needs at least User-level privileges on the table in their own role.
  • Keep the depth deliberate. A deep hierarchy on a large organisation gives senior managers read access to a great deal of data, which is sometimes the intent and sometimes an audit finding.
  • Maintain the manager field or positions as part of the joiner, mover and leaver process, because hierarchy security is only as accurate as that data.

When do business units genuinely make sense for separate branches or entities?

Business units are the right answer when data must not mix: branches that are separate legal entities, a regulated subsidiary whose auditors need to see that another entity cannot read its customers, or franchise-style units that share a platform but not a customer base. With business unit-level privileges, users see records owned within their business unit, and Parent: Child depth lets a head office see the branches below it.

They are the wrong answer when they are used to mirror the org chart. Every department as a business unit means every reorganisation becomes a security change, users who move lose their roles, and people who need to collaborate across units end up with direct shares that nobody tracks.

The classic model forced a user and their records into a single business unit. Modernized business units, enabled with the record ownership across business units setting, remove that constraint: a user can hold security roles assigned in other business units, and a record can have an owning business unit that is different from its owner's. That is the matrix data access structure, and it is usually a better fit than adding teams in every unit just to let a regional manager see two branches. Turn it on deliberately and test it in a sandbox, because it changes how access is calculated for everyone.

Which team type do you need: owner team, access team or Microsoft Entra group team?

Teams are where most models become hard to explain, because three different things share one name. Choose by what the team has to do.

Team typeWhat it doesWatch out for
Owner teamBelongs to one business unit, can own records and holds security roles that its members inherit.A role with User-level depth assigned to a team gives members access to team-owned records only, unless the Member privilege inheritance setting on the role is Direct User (Basic) access level and Team privileges.
Access teamGrants specific access rights to one record, usually through an access team template and a subgrid on the form. Holds no security roles and owns nothing.Members still need the privilege on the table in their own role for the access to work.
Microsoft Entra group teamLinked to a Microsoft Entra security group or Microsoft 365 group; membership is managed in Entra and roles are assigned to the team. Can be owner or access type.Membership changes are managed outside Dynamics 365, so the Entra group owners become part of your security model and your audit.
Direct sharingGrants rights on one record to a user or team, and can cascade to related records.Heavy or cascading sharing grows the sharing table, slows queries and leaves access nobody can explain. Prefer teams.

How do column security and export privileges fit into the security model?

Record access answers who can open a row. Column security answers who can see a value inside it. Enable column security on the sensitive columns and grant read, create and update through column security profiles assigned to users or teams. Users without a profile see the column as secured, and the platform enforces it across forms, views and the API. System Administrators have full access to secured columns, which is one more reason to keep that role to very few people.

Export needs a realistic view. The Export to Excel privilege in the security role controls the command in the application, but anyone with read access and API access can still retrieve what they can read. The defensible control is therefore read access itself, backed by who holds roles with Organization-level read, who holds the System Administrator and System Customizer roles, and who can create connections or apps against the environment.

How do you produce a defensible list of who can see and export what today?

Before changing anything, write down the model as it actually is, not as it was designed. Auditors, and the person who has to sign off the change, need the same artefact: a register they can read without opening the admin centre. If you want an independent party to produce it as part of a wider assessment, the Dynamics 365 health check and technical audit covers security posture alongside the rest of the environment, so it is not repeated here.

  • Roles by user: every enabled user, their business unit, the roles assigned directly and through each team, and the resulting depth on the tables that hold customer, financial and personal data.
  • Broad access: everyone with Organization-level read on sensitive tables, System Administrator, System Customizer, and export or bulk privileges.
  • Teams: owner, access and Entra group teams, their members, their roles, and who manages membership.
  • Sharing: the volume of direct shares by table and by recipient, and which ones cascade.
  • Hierarchy: whether manager or position hierarchy is enabled, the depth, the included tables, and users with an empty or stale manager.
  • Column security: secured columns and the profiles and members that can read them.
  • Change evidence: Dataverse auditing enabled for role assignment and ownership changes. On individual records, the free Easy Audit PCF control makes owner and value changes readable when someone asks who moved a record and when.

How do you change a live security model without losing record visibility?

This is where environments get broken. The usual failure is a sequence problem: a user is moved to a new business unit and loses their roles, a team is deleted before its records are reassigned, or broad access is removed on Friday before the new access has been tested. Changing a user's business unit removes their security roles by default, and records they own follow them unless modernized business unit settings say otherwise, so check those environment settings before the first move.

The order below is the one we use. Its two principles are that access is added before it is removed, and that every ownership change is logged well enough to be reversed without restoring the whole environment. A full environment restore is the last resort, because it also discards every legitimate change made since the backup.

  • 1. Freeze security changes in production and take a manual environment backup, so the only changes during the work are the planned ones.
  • 2. Record a visibility baseline: for each persona, a named real user and the count of records they can see in the key tables and views, plus the rows they must not see.
  • 3. Export the current security roles, team memberships, business unit structure and hierarchy settings into a solution or a written register, so the old model can be put back.
  • 4. Rehearse the whole change in a sandbox copy of production, including ownership reassignment, and compare the rehearsal results against the baseline.
  • 5. Add first: create the new teams, roles, positions or business units and grant the new access while the old access is still in place, so nobody loses a record mid-change.
  • 6. Reassign ownership in batches by business area, logging every record with its previous owner and owning business unit, and check the cascade behaviour of each relationship before the first batch.
  • 7. Retest each persona with the real users after every batch, against the baseline, before starting the next one.
  • 8. Remove the old access last: Organization-level privileges nobody should hold, direct shares that the new model replaces, and retired teams.
  • 9. Keep the ownership log and the exported old model until the business has worked a full cycle, such as a month end, on the new model.

What should you test before and after each security change?

Test with real users in each persona, never with an administrator account, because an administrator sees everything and proves nothing. Where a user cannot join a session, impersonation through the API can confirm what a given user can retrieve, but the sign-off should still come from the people who do the work.

TestBefore the changeAfter each batch
Own recordsCount of records each persona owns and can open.Same count, and every record still opens and saves.
Team and manager visibilityWhat a manager and a team member can see in the main views and dashboards.Same or intentionally changed, with the difference explained.
Must-not-seeRecords from another branch or entity that a persona must not see.Still invisible, including through search, related records and exports.
Create and assignA persona can create a record and assign it where the process requires.Still works, and the owning business unit is the expected one.
Secured columnsWho sees salary, margin or identity values.Unchanged unless the change was intended.
AutomationFlows, plug-ins and integrations running under service accounts or application users.Still run, since removing a role from an application user breaks integrations silently.

What should you do with business units inherited from a merger or a previous partner?

Inherited structures are the most common reason a model is hard to explain: business units that mirror a company that no longer exists, a unit per department from an early design, or teams created to work around a partition that was never needed. Do not delete or flatten them first. Map what each unit actually partitions today, which records it owns and which roles depend on it, then decide unit by unit whether it still reflects a real boundary.

Where it does not, move users and records into the target structure using the change order above, reassign team-owned records before retiring the team, and disable a unit only once it owns nothing and nobody depends on it. Where two companies are also consolidating two CRMs, the data side is covered in our guide to post-merger CRM consolidation. If Copilot or AI agents are being introduced over the same data, fix the security model first, because they answer from what the user can read; see governing Copilot over Dynamics 365 data.

Who can redesign the security model if there are no local Dynamics 365 specialists?

Solzet designs, audits and remediates Dynamics 365 Customer Engagement and Power Platform security models remotely from Yerevan, Armenia, for organisations in the UK, Germany, the Netherlands, the US and Armenia, as a fixed-scope engagement: the register of current access, the target model, the sandbox rehearsal, the batched change and the tests with your users. Organisations in Armenia and the region without local specialists can read how we work there on our Dynamics 365 partner in Armenia page. If the environment is broken beyond the security model, the project rescue and takeover service is the better starting point.

We recommend the right solution - whether that's Microsoft Dynamics 365, Power Platform, or a custom-built CRM. Some businesses need the Microsoft ecosystem. Others need full control without licensing. We deliver both. If per-user licensing, hosting or a requirement for complete control over the data model rules out Dataverse, a custom CRM on React, Node.js, PostgreSQL or .NET can implement the same partitioning, with the access rules engineered explicitly rather than configured.

What do people ask us?

Should we use business units or teams in Dynamics 365?

Use teams and owner-based security by default, with the manager or position hierarchy for managers. Use business units only when data genuinely has to be partitioned, such as separate legal entities or branches that must not see each other. Business units are the hardest part of the model to change later, because every user belongs to exactly one and moving a user removes their roles by default.

What is the difference between manager hierarchy and position hierarchy?

Manager hierarchy uses the Manager field on each user and requires the manager to be in the same business unit as the report or in its parent business unit. Position hierarchy uses positions you define and assign, independent of business units, so it suits managers whose teams sit in other units. In both, direct managers get read and write access to records owned by their direct reports and higher levels get read-only access, up to the configured depth.

Can a record be owned in a different business unit from its owner?

Yes, with modernized business units. Once record ownership across business units is enabled in the environment, a record can have an owning business unit different from its owner, and users can hold security roles assigned in more than one business unit. This is the matrix data access model. Test it in a sandbox first, because it changes how access is evaluated.

What is the difference between an owner team and an access team?

An owner team can own records and holds security roles that its members inherit. An access team owns nothing and has no roles; it grants specific rights on one record to its members, usually through an access team template. Members of an access team still need the relevant privilege in their own security role for that access to work.

How do we keep one branch from seeing data from another branch for our auditors?

Put each branch in its own business unit, give users Business Unit-level privileges on the sensitive tables, keep Organization-level read to a named few, and document it in an access register the auditors can read. Then prove it with must-not-see tests run by real users. If the regulator requires separate administration or storage as well, use separate environments.

Why did users lose access after we changed their business unit?

Changing the business unit of a user removes their security roles by default, and records they own can move with them, depending on modernized business unit settings. If roles were not reassigned in the new unit, or team memberships and shares relied on the old one, visibility disappears. Reassign roles immediately, then follow an add-before-remove change order for any further moves.

Can we roll back a security model change if something breaks?

Yes, if you prepared for it. Export the old roles and structure, log every reassigned record with its previous owner and owning business unit, and add new access before removing the old. That lets you reverse a batch precisely. Restoring an environment backup is a last resort, because it also discards legitimate work done since the backup.

Does column security stop System Administrators seeing sensitive values?

No. System Administrators have full access to secured columns. Column security profiles control everyone else, across forms, views and the API, so keep the System Administrator role to very few people and review who holds it as part of the access register.

Which solution is right for your business?

Tell us what you need. A senior consultant replies within one business day with a recommendation - Dynamics 365, Power Platform, or a custom-built CRM - not a sales script.