Skip to content
Dataverse

Dataverse or SharePoint Lists: Choosing on Capability

Dataverse is not primarily storage — it is relationships, security and validation the platform enforces. That is what you are paying for.

Rajiv KumarJanuary 2, 20195 min read

Both Dataverse and SharePoint lists sit behind Power Apps, so 'which database' is the wrong question. The right one is what the data must guarantee: relationships, row-level security, and validation that holds no matter what writes to it.

Dataverse gets introduced as "the database behind Power Apps", which is accurate and unhelpful. SharePoint lists are also a database behind Power Apps. So is SQL Server. The description does not tell you when to reach for it.

The useful framing is different. Dataverse is not primarily storage. It is a set of behaviours — relationships, security, validation, business logic — that apply no matter what is reading or writing the data.

What Dataverse provides that a list does not

Relationships the platform understands

In a SharePoint list you can add a lookup column, and it is a reference. Dataverse relationships are real: they carry referential integrity, defined cascade behaviour, and navigation properties.

Practically, that means you can define what happens when a parent record is deleted — cascade, restrict, or orphan — and the platform enforces it everywhere. In a list, that logic lives in whatever app happens to be writing.

A security model with actual granularity

SharePoint permissions work on items, lists and sites. That is adequate for documents and awkward for business records.

Dataverse expresses security in terms the business already uses: security roles, business units, and record ownership. "A salesperson sees their own accounts; a manager sees their team's; a director sees the region" is a configuration, not a set of item-level permissions somebody has to maintain.

This is often the deciding factor. Row-level security that follows an organisational hierarchy is genuinely difficult to reproduce with list permissions, and painful to maintain once built.

Logic that lives with the data

Validation implemented in a canvas app protects that app. Anything else writing to the same list — a flow, a script, a second app, a bulk import — bypasses it.

Dataverse business rules, calculated columns and plug-ins run at the data layer. Every path in gets the same enforcement. For anything with real integrity requirements, this is the difference between a rule and a suggestion.

Typed columns

Dataverse has genuine types: currency with precision, choice sets defined once and reused, decimals with defined scale, durations. SharePoint's type system is looser, and the gaps surface as rounding errors and inconsistent option values.

When a SharePoint list is the right answer

Reaching for Dataverse by default is as much a mistake as avoiding it. Lists are the better choice when:

  • The data is genuinely document-centric — the file matters more than the record
  • The volume is modest and will stay that way
  • Permissions are simple, at site or list level
  • Business users need to work directly in the data, in a familiar grid
  • Licensing constraints rule out premium connectors
  • The application is a form and a view, not a system

A departmental request tracker used by fifteen people does not need Dataverse. Choosing it there adds licensing cost and administrative overhead for capability nobody will use.

Choosing between them

If you need…Choose
Row-level security following an org hierarchyDataverse
Referential integrity across related recordsDataverse
Validation enforced regardless of the clientDataverse
Model-driven appsDataverse
Broad delegation on large datasetsDataverse
Documents with metadataSharePoint
A simple tracker for a small teamSharePoint
To stay within standard licensingSharePoint
Users editing directly in a gridSharePoint

Licensing, honestly

Dataverse requires premium licensing. SharePoint lists are available with a standard Microsoft 365 licence.

Licensing terms and prices change, so treat specific figures as something to confirm rather than something to read in an article. What does not change is the shape of the decision: Dataverse has a per-user cost that SharePoint does not, and that cost must be justified by capability you will actually use.

The honest test: if you cannot name a specific Dataverse capability your application needs — security roles, cascading deletes, server-side business rules, model-driven apps — then you are paying for something you are not using.

Common mistakes and better practice

  • Choosing Dataverse because it sounds more professional. A small tracker on Dataverse is a small tracker with a licensing bill.
  • Choosing SharePoint for transactional data that will grow. Delegation limits and the view threshold become real constraints. If the data will get large, decide early.
  • Rebuilding relational structure in lists. Multiple lists joined by lookups, with integrity maintained by flows, is a relational database implemented badly. That is the signal to move.
  • Migrating late. Moving from lists to Dataverse means rebuilding apps, flows and permissions. It is far cheaper to decide correctly at the start.
  • Enforcing validation only in the app. If a flow or an import can bypass your rules, they are not rules.
  • Treating environments as an afterthought. Dataverse lives in an environment with its own lifecycle. Plan development, test and production separately.

Troubleshooting and common friction

SituationCauseWhat to do
Users cannot see records they shouldSecurity role or business unit scopeReview the role's read privilege depth against the ownership model
Delete blocked with a relationship errorCascade behaviour set to restrictRemove child records first, or reconsider the cascade setting
Business rule not firing for a flowRule scoped to a specific form rather than the tableSet the scope to the entity so it applies server-side
Choice values inconsistent across appsLocal choice column instead of a global choice setDefine a global choice and reuse it
Solution import fails between environmentsMissing dependency or component version mismatchRead the import log; add the missing component to the solution

Frequently asked questions

Is Dataverse just SQL Server with a different name?

No. It is a data platform including security, relationships, business logic, auditing and an API surface. Storage is one part of it.

Can Dataverse and SharePoint be used together?

Yes, and it is a common pattern: structured records in Dataverse, supporting documents in SharePoint, related through the platform's document management integration.

Is migrating from lists to Dataverse straightforward?

The data moves readily. The apps, flows, and permission model are the work. Decide early rather than migrating later.

Does Dataverse remove the delegation problem?

It substantially reduces it. Dataverse supports the widest range of delegable operations, but delegation still applies and formulas still need checking.

What is the clearest signal to move?

Multiple related lists whose integrity is maintained by flows, or permission requirements that item-level permissions cannot express cleanly. Both mean you have outgrown lists.

Deciding on capability, not on size

The choice is not about how much data you have. It is about what the data has to guarantee.

If the answer involves relationships the platform must enforce, security that follows an organisational structure, or validation that holds regardless of how the data is written, Dataverse earns its cost. If it does not, a well-designed SharePoint list will serve the same users for less, and be easier for them to work with.

Share