Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Multitenant solutions on Azure commonly use Azure SQL Database. This article outlines key SQL Database features that support multitenant system design. It also provides guidance and examples for how to implement Azure SQL in a multitenant solution.
Guidance
The SQL Database team publishes extensive guidance for how to implement multitenant architectures by using SQL Database. For more information, see Multitenant software as a service (SaaS) database tenancy patterns and Partition SQL Database.
Features of SQL Database that support multitenancy
SQL Database includes many features that support multitenancy.
Elastic pools
Elastic pools enable you to share compute resources between multiple databases on the same server. By using elastic pools, you can achieve performance elasticity for each database. You can also maximize cost efficiency by sharing provisioned resources across multiple databases. Elastic pools provide built-in protections against the noisy neighbor problem.
For more information, see the following resources:
- SQL Database elastic pools
- Resource management in dense elastic pools
- Disaster recovery strategies for applications that use SQL Database elastic pools
Elastic database tools
You can use the Sharding pattern to scale your workload across multiple databases. SQL Database provides tools to support sharding. These tools include the management of shard maps, which serve as databases that track the tenants assigned to each shard. These tools also include the capability to initiate and track queries and management operations on multiple shards by using elastic jobs.
For more information, see:
- Multitenant applications with elastic database tools and row-level security
- Scale out by using SQL Database
- Elastic jobs
- Create, configure, and manage elastic jobs
Row-level security
Row-level security helps enforce tenant-level isolation in shared tables.
For more information, see the following resources:
- Row-level security implementation on Azure SQL
- Multitenant applications with elastic database tools and row-level security
Key management
The Always Encrypted feature provides end-to-end encryption for your databases. If your tenants must supply their own encryption keys, consider deploying separate databases for each tenant and enabling the Always Encrypted feature.
Contributors
Microsoft maintains this article. The following contributors wrote this article.
Principal authors:
- Paul Burpo | Principal Customer Engineer, FastTrack for Azure
- John Downs | Principal Software Engineer
Other contributors:
- Silvano Coriani | Principal Program Manager, Azure SQL
- Dimitri Furman | Principal Program Manager, Azure SQL
- Sanjay Mishra | Principal Group Program Manager, Azure SQL
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack for Azure
To see nonpublic LinkedIn profiles, sign in to LinkedIn.
Next step
- Case study: Run one million databases on Azure SQL for a large SaaS provider: Dynamics 365 and Microsoft Power Platform
- Sample: The Wingtip Tickets SaaS application provides three multitenant examples of the same app. Each example explores a different database tenancy pattern on SQL Database. The first example uses a standalone application, where each tenant has its own database. The second example features a multitenant app, with each tenant having a separate database. The third example includes a multitenant app that has sharded multitenant databases.
- Video: Design patterns for SaaS applications on SQL Database