Delen via


Multitenancy en Azure Database for PostgreSQL

Veel multitenant-oplossingen in Azure maken gebruik van het opensource-relationele databasebeheersysteem Azure Database for PostgreSQL. In dit artikel bekijken we de functies van Azure Database for PostgreSQL die nuttig zijn bij het werken met multitenant-systemen. Het artikel bevat ook koppelingen naar richtlijnen en voorbeelden voor het gebruik van Azure Database for PostgreSQL in een multitenant-oplossing.

Implementatiemodi

Er zijn twee implementatiemodi beschikbaar voor Azure Database for PostgreSQL die geschikt zijn voor gebruik met multitenant-toepassingen:

  • Azure Database for PostgreSQL - Flexibele server : dit is een goede keuze voor de meeste multitenant-implementaties waarvoor geen hoge schaalbaarheid is vereist die wordt geleverd door Azure Cosmos DB for PostgreSQL.
  • Azure Cosmos DB for PostgreSQL - Een door Azure beheerde databaseservice die is ontworpen voor oplossingen die een hoog schaalniveau vereisen, dat vaak multitenanted toepassingen omvat. Deze service maakt deel uit van de Azure Cosmos DB-serie producten.

Notitie

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad en is gepland voor buitengebruikstelling op 28 maart 2025. Het wordt niet aanbevolen voor nieuwe multitenant-workloads.

Functies van Azure Database for PostgreSQL die ondersteuning bieden voor multitenancy

Wanneer u een multitenant-toepassing bouwt met behulp van Azure Database for PostgreSQL, zijn er een aantal functies die u kunt gebruiken om de oplossing te verbeteren.

Notitie

Sommige functies zijn alleen beschikbaar in specifieke implementatiemodi. Deze functies worden aangegeven in de onderstaande richtlijnen.

Beveiliging op rijniveau

Beveiliging op rijniveau is handig voor het afdwingen van isolatie op tenantniveau wanneer u gedeelde tabellen gebruikt. In PostgreSQL wordt beveiliging op rijniveau geïmplementeerd door rijbeveiligingsbeleid toe te passen op tabellen om de toegang tot rijen per tenant te beperken.

Er kan een kleine invloed zijn op de prestaties bij het implementeren van beveiliging op rijniveau in een tabel. Daarom moeten er mogelijk extra indexen worden gemaakt voor tabellen waarvoor beveiliging op rijniveau is ingeschakeld om ervoor te zorgen dat de prestaties niet worden beïnvloed. Het wordt aanbevolen om technieken voor prestatietests te gebruiken om te controleren of uw workload voldoet aan de prestatievereisten volgens de basislijn wanneer beveiliging op rijniveau is ingeschakeld.

Meer informatie:

Horizontaal schalen met sharding

Met het Sharding-patroon kunt u uw workload schalen op meerdere databases of databaseservers.

Oplossingen die een zeer hoog schaalniveau nodig hebben, kunnen Gebruikmaken van Azure Cosmos DB voor PostgreSQL. Deze implementatiemodus maakt horizontale sharding van tenants mogelijk op meerdere servers (knooppunten). Door gedistribueerde tabellen in databases met meerdere tenants te gebruiken, kunt u ervoor zorgen dat alle gegevens voor een tenant worden opgeslagen op hetzelfde knooppunt, waardoor de queryprestaties worden verhoogd.

Notitie

Vanaf oktober 2022 is Azure Database for PostgreSQL Hyperscale (Citus) hernoemd als Azure Cosmos DB for PostgreSQL en verplaatst naar de Cosmos DB-serie producten.

Meer informatie:

Groepsgewijze verbinding

Postgres maakt gebruik van een procesmodel voor verbindingen. Dit model maakt het inefficiënt om grote aantallen niet-actieve verbindingen te onderhouden. Voor sommige multitenant-architecturen is een groot aantal actieve verbindingen vereist. Dit heeft een negatieve invloed op de prestaties van de Postgres-server.

Verbindingspooling via PgBouncer wordt standaard geïnstalleerd in Azure Database for PostgreSQL - Flexible Server.

Meer informatie:

Microsoft Entra-verificatie

Azure Database for PostgreSQL - Flexible Server biedt ondersteuning voor het verifiëren van verbindingen met behulp van Microsoft Entra-id. Met deze functie kunnen toepassingsworkloads in een omgeving met meerdere tenants worden geverifieerd bij de database met behulp van een tenantspecifieke service-principal of beheerde identiteit, wat betekent dat de databasetoegang kan worden beperkt tot een afzonderlijke tenant. Door Microsoft Entra ID-verificatie te combineren met tenantspecifiek rijbeveiligingsbeleid, kunt u het risico beperken dat een toepassing toegang heeft tot de gegevens van een andere tenant vanuit een database met meerdere tenants. Meer informatie:

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere Inzenders:

  • John Downs | Principal Software Engineer
  • Arsen Vladimirskiy | Principal Customer Engineer, FastTrack voor Azure
  • Paul Burpo | Principal Customer Engineer, FastTrack voor Azure ISV's
  • Assaf Fraenkel | Senior Engineer/Data Architect, Azure FastTrack voor ISV's en start-ups

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Bekijk de opslag- en gegevensbenaderingen voor multitenancy.