Power Platform architecture

Dataverse vs Azure SQL: deciding who owns the data layer under your Power Apps

Dataverse vs Azure SQL for Power Apps is a later decision than the one most teams meet first. If you are still weighing a free SharePoint list against Dataverse — list thresholds, delegation limits and the jump to premium licensing — start with Dataverse vs SharePoint lists for Power Apps instead. This page assumes you are past that point: the app needs premium licensing either way, because the SQL Server connector is a premium connector too. So the argument is not the cost of entry. It is ownership — take the business layer Dataverse ships with (security roles, auditing, model-driven apps), or run a SQL backend your own team engineers, secures and operates.

Why licensing stops being the tiebreaker

At the list stage, licensing decides a lot: a list-backed app on standard connectors runs on rights most Microsoft 365 users already have, and Dataverse does not. Once the requirement is “a proper database”, that asymmetry disappears. A canvas app talking to Azure SQL through the SQL Server connector and a canvas app on Dataverse both put their users on premium Power Apps licensing, so a comparison framed as “which one is cheaper to license” usually compares two versions of the same line item.

What does differ is who holds the rest of the bill and who carries the work. Dataverse storage is tenant capacity that sits with your Power Platform licensing and is watched by whoever administers the Power Platform. An Azure SQL database is billed on an Azure subscription at a service tier somebody chose, and it is watched — or not — by whoever owns that subscription. Neither is inherently cheaper. The useful question is which budget and which team you want the running cost to land on, and whether that team knows it is theirs.

What the Dataverse business layer does without being built

Dataverse is not just a place to put rows; it is a set of platform services wrapped around the rows. Microsoft’s introduction to Microsoft Dataverse (opens in new tab) describes tables with relationships, business rules and logic, and security applied at the data layer, so every app, flow and report that touches a table inherits the same behaviour. The value is less any one feature than the fact that none of them has to be designed, coded or maintained by you.

The security model is the clearest example. Microsoft’s security concepts in Microsoft Dataverse (opens in new tab) cover security roles, business units, owner and access teams, record sharing and column-level security — the machinery for “each region sees its own records” and “only HR sees the salary column”, configured rather than written. Auditing of record changes is a setting you switch on for the tables and columns that need it. Deployment between development, test and production environments travels in Power Apps solutions (opens in new tab), alongside the apps and flows that depend on the tables.

And there is one capability that exists only here. Microsoft’s model-driven apps overview (opens in new tab) states that a model-driven app needs a data model housed in Dataverse. If the process is record-dense and people move between related records all day, that generated interface — views, forms, related-record navigation, dashboards — is often most of the reason to choose Dataverse. Whether your process wants that shape or a purpose-built screen is its own decision, covered in canvas apps vs model-driven apps.

What a SQL backend gives you, and what it asks back

Azure SQL is a full relational database engine, and a canvas app is simply one client of it. That is its strength. You get the schema exactly as you design it, T-SQL views and stored procedures for logic that belongs next to the data, indexing under your control, and a database that reporting tools, integrations and other line-of-business systems can read and write directly without going through the Power Platform. If the data already lives in SQL, or several systems share it, putting a Power App in front of it is usually less disruptive than moving it.

The same freedom is the bill. Azure SQL Database is a managed service, so Microsoft runs the engine and the infrastructure underneath it, but everything above the engine is yours: the schema and its migrations, indexes and query tuning, how users authenticate, what each of them may read, whether changes are audited, how long backups are retained, and which service tier the database runs on as usage grows. None of that is exotic work for a team with database skills. It is real work for a team without them, and it does not stop after go-live.

Security deserves a specific warning. Dataverse security roles do not follow the data out of Dataverse, so on a SQL backend row and column access has to be enforced in the database — permissions, views, procedures, and a connection where each user signs in with their own Microsoft Entra ID identity rather than a single shared SQL login. An app that merely hides rows on screen is showing a filtered view of data its connection can still reach. This is the single most common gap we find when reviewing SQL-backed Power Apps.

Query behaviour: closer than the list comparison

Delegation — Power Apps pushing a query to the data source instead of pulling rows to the device — is the headline issue when leaving SharePoint lists. Between Dataverse and SQL it matters less, because both are delegable data sources with broad coverage. Microsoft’s guide to delegation in a canvas app (opens in new tab) still applies to both: specific functions and column types can fall outside what a source delegates, and a non-delegable query quietly returns partial results. The practical difference is that on SQL you can move a hard query into a view or stored procedure, and on Dataverse you shape it with the table design, views and relationships the platform provides.

The two backends side by side

This is the checklist we walk through when both options are genuinely on the table. It is about ownership and capability, not price — the licence line is the same on both sides, so it is not a row.

Decision factor Dataverse Azure SQL
Data model Tables, relationships, calculated and rollup columns configured in the maker portal Schema designed and versioned by your team in T-SQL
Row and column security Security roles, business units, teams, record sharing and column security profiles, configured Database permissions, views and procedures plus per-user Entra ID sign-in, engineered
Auditing Record-change auditing enabled per table and column Available in the platform, but designed, configured and reviewed by your team
App types Canvas and model-driven apps Canvas apps; model-driven only via Dataverse, for example through virtual tables
Where business logic lives Business rules, platform validation, and flows or plug-ins where rules run out Constraints, triggers, views and stored procedures in the database
Moving changes to production Solutions carry tables, apps and flows together between environments Database migrations deployed alongside, and in step with, the app’s solution
Other systems using the data Through Dataverse APIs, connectors and export features Directly, over standard SQL connections many tools already support
Day-to-day operation Power Platform admin: environments, capacity, roles, deployments Your team: tuning, indexing, retention, tier sizing; Microsoft runs the engine
Who holds the running cost Tenant capacity alongside Power Platform licensing The Azure subscription that hosts the database
Skills to maintain it A Power Platform maker or administrator Someone comfortable with SQL schema design, security and performance

Reading your own requirements

Most of these calls resolve once each requirement is written as a sentence. These are the ones that tip it in practice.

What the requirement sounds like Backend that fits Why
“Each branch sees its own records, and managers see all of them” Dataverse Business units and security roles do this by configuration rather than code
“We need to show who changed what, and when” Dataverse Auditing is a platform setting rather than a design project
“We want views, forms and dashboards over related records” Dataverse That is a model-driven app, and model-driven apps need Dataverse
“The data is already in SQL and the ERP writes to it” Azure SQL The app is a new client of an existing database; moving the data creates a sync problem
“Heavy calculations run across the whole dataset overnight” Azure SQL Set-based processing and stored procedures belong in the database engine
“We have a DBA, and nobody who administers the Power Platform” Azure SQL The backend should sit with the people who will actually run it
“Nobody here writes SQL, and nobody wants to” Dataverse An engineered backend with no owner decays; a configured one is maintainable by makers

You do not always have to pick only one

Hybrid designs are common and often correct. A Dataverse app can keep the operational records — the part that needs roles, auditing and a model-driven interface — while reference or historical data stays in SQL where other systems maintain it. Dataverse virtual tables can surface external rows inside Dataverse without copying them, but they do not carry every capability of a native table, so check Microsoft’s documented limitations against the specific requirement before designing around them. Going the other way, Dataverse data can be exported to an analytics store for reporting rather than queried live by a SQL-based tool.

What does not work well is a split nobody wrote down: half the logic in Dataverse business rules, half in SQL triggers, and a canvas app stitching them together. If a hybrid is the answer, name which system is the source of truth for each entity and who owns each side.

How we make the call on a fixed-fee build

On a scoped engagement the backend is settled in the design conversation, before anyone opens a screen. We list the entities, who may see which rows and columns, what must be audited, which other systems touch the data, and — the question that decides more of these than any feature — who in your organisation will own the backend once we hand it over. Where Dataverse wins, the model, roles and solution pipeline are designed properly as part of Microsoft Dataverse consulting services. Where SQL wins, the database, its security and its Azure footprint are scoped with the same care our Microsoft Azure consulting work applies to any other workload.

Either way, the reasoning is written into the scope you approve before the fee is agreed. Builds are delivered by senior US-based engineers in a typical two to four weeks, with 30 days of hypercare after go-live, and everything lives in your own tenant and subscription. Describe the app and the data behind it and we will tell you which backend fits, and who should own it.

FAQ

Backend ownership questions, answered plainly

Not in a way anyone can state without your numbers. Both need premium Power Apps licensing for the people using the app, because the SQL Server connector is premium. What differs is the shape of the bill: Dataverse draws on tenant capacity tied to your licences, while Azure SQL is billed on an Azure subscription at the tier you choose.

No. Security roles, business units and column security apply to data held in Dataverse. On Azure SQL, access control is yours to design: database permissions, Microsoft Entra ID sign-in so each user connects as themselves, and filtering in views or procedures. Hiding rows only on the screen is presentation, not security.

Not directly. Microsoft documents model-driven apps as requiring a data model housed in Dataverse. Virtual tables can surface external rows inside Dataverse, but they do not carry every Dataverse capability, so check their documented limitations against your requirements first. If the model-driven interface is the requirement, Dataverse is the backend.

When the data already lives in SQL and other systems read or write it, when someone on staff designs schemas and tunes queries for a living, or when the workload needs stored procedures, complex joins and set-based processing that belong in the database. In those cases the app is one client of a database, not its owner.

With Dataverse, a Power Platform administrator manages environments, security roles, capacity and solution deployments. With Azure SQL, Microsoft runs the platform, but your team owns schema changes, indexing, security configuration, backup retention choices and the Azure bill. Either works; the mistake is choosing a backend nobody on staff is prepared to own.

Book a free consultation

Get more from the Microsoft tools you already pay for

Tell us what you’re trying to fix — a report, an approval process, an intranet, a Copilot rollout. We scope it as a fixed-fee project, you approve, and a senior engineer delivers in 2–4 weeks.

  • Fixed-fee scope agreed before any work starts
  • Senior, US-based Microsoft engineers — no handoffs
  • Typical 2–4 week delivery
  • 30 days of post-delivery hypercare included

The fastest way to reach us is the form — tell us the task and we’ll reply within one business day.

All fields are required.

We reply within one business day. No newsletters, no drip campaigns.

Book a Free Consultation