Dela via


Vägledning för att använda Azure Database for PostgreSQL i en lösning med flera klientorganisationer

Många lösningar för flera klientorganisationer i Azure använder relationsdatabashanteringssystemet Azure Database for PostgreSQL med öppen källkod. Den här artikeln beskriver funktionerna i Azure Database for PostgreSQL som är användbara när du arbetar med system med flera klientorganisationer. Artikeln innehåller även länkar till vägledning och exempel för hur du använder Azure Database for PostgreSQL i en lösning med flera klientorganisationer.

Distributionsmodeller

Följande distributionslägen är tillgängliga för Azure Database for PostgreSQL och är lämpliga för användning med program med flera klienter:

  • Azure Database for PostgreSQL – flexibel server är ett bra val för de flesta distributioner med flera klientorganisationer som inte kräver den höga skalbarhet som Azure Cosmos DB for PostgreSQL tillhandahåller.

  • Azure Database for PostgreSQL – flexibel server med elastiska kluster (förhandsversion) ger horisontell skalning i en hanterad tjänst. Den är lämplig för program med flera klienter som behöver skalas från ett fåtal klienter till ett stort antal klienter. Den här funktionen är i förhandsversion och rekommenderas inte för produktionsanvändning. Du kan dock börja utvärdera det för framtida implementering.

  • Azure Cosmos DB for PostgreSQL är en Azure-hanterad databastjänst som är utformad för lösningar som kräver en hög skalningsnivå, till exempel program med flera klienter. Den här tjänsten ingår i Azure Cosmos DB-serien med produkter.

Anteckning

Azure Database for PostgreSQL – enskild server är på pensionsvägen och är planerad att tas ur bruk senast den 28 mars 2025. Det rekommenderas inte för nya arbetsbelastningar med flera klientorganisationer.

Azure Database for PostgreSQL-funktioner som stöder flera klientorganisationer

När du använder Azure Database for PostgreSQL för att skapa ett program med flera klientorganisationer kan följande funktioner förbättra din lösning.

Anteckning

Vissa funktioner är endast tillgängliga i specifika distributionslägen. Följande vägledning beskriver vilka funktioner som är tillgängliga.

Säkerhet på radnivå

Säkerhet på radnivå är användbart för att framtvinga isolering på klientnivå när du använder delade tabeller. I PostgreSQL implementerar du säkerhet på radnivå genom att tillämpa radsäkerhetsprinciper på tabeller för att begränsa åtkomsten till rader efter klientorganisation.

Implementering av säkerhet på radnivå i en tabell kan påverka prestanda. Du kan behöva skapa andra index för tabeller som har säkerhet på radnivå aktiverat för att säkerställa att prestanda inte påverkas. När du använder säkerhet på radnivå är det viktigt att använda tekniker för prestandatestning för att verifiera att din arbetsbelastning uppfyller dina grundläggande prestandakrav.

Mer information finns i Skydda din Azure Database for PostgreSQL-server.

Vågrät skalning med skärvning

Med horisontell partitioneringsmönstret kan du skala arbetsbelastningen över flera databaser eller databasservrar.

Lösningar som behöver en hög skalningsnivå kan använda Azure Cosmos DB för PostgreSQL. Det här distributionsläget möjliggör horisontell horisontell partitionering av klientorganisationer över flera servrar eller noder. Använd distribuerade tabeller i databaser med flera klienter för att säkerställa att alla data för en klientorganisation lagras på samma nod. Den här metoden förbättrar frågeprestandan.

Anteckning

I oktober 2022 bytte Azure Database for PostgreSQL Hyperscale (Citus) namn till Azure Cosmos DB för PostgreSQL och flyttades till Azure Cosmos DB-serien med produkter.

Mer information finns i följande artiklar:

Elastiska kluster (förhandsversion)

Elastiska kluster är en funktion i en flexibel Azure Database for PostgreSQL-server. De tillhandahåller horisontella skalningsfunktioner i en enda hanterad tjänst. Det här distributionsalternativet använder distribuerade tabellfunktioner för arbetsbelastningar med flera klientorganisationer som kräver utskalningsfunktioner.

I lösningar med flera klienter möjliggör elastiska kluster partitionering av klientdata över flera noder. Du kan distribuera tabeller efter klientorganisations-ID för att säkerställa att klientdata samlokaliseras på specifika noder. Den här metoden kan förbättra frågeprestanda för klientspecifika frågor.

Anteckning

Elastiska kluster är i förhandsversion och är endast tillgängliga i Azure Database for PostgreSQL – flexibel server.

Mer information finns i Elastiska kluster i Azure Database for PostgreSQL – flexibel server (förhandsversion).

Anslutningspoolning

Postgres använder en processbaserad modell för anslutningar. Den här modellen gör det ineffektivt att underhålla ett stort antal inaktiva anslutningar. Vissa arkitekturer för flera klientorganisationer kräver många aktiva anslutningar, vilket påverkar Postgres-serverns prestanda negativt.

Anslutningspooler via PgBouncer installeras som standard i Azure Database for PostgreSQL – flexibel server.

Mer information finns i följande artiklar:

Microsoft Entra-autentisering

Azure Database for PostgreSQL – flexibel server stöder anslutningsautentisering med hjälp av Microsoft Entra-ID. Den här funktionen gör det möjligt för programarbetsbelastningar i en miljö med flera klienter att autentisera till databasen med hjälp av ett klientspecifikt tjänstobjekt eller hanterad identitet. Databasåtkomsten kan begränsas till en enskild klientorganisation. Genom att kombinera Microsoft Entra ID-autentisering med klientspecifika radsäkerhetsprinciper kan du minska risken för att ett program får åtkomst till en annan klients data från en databas med flera klienter.

Mer information finns i följande artiklar:

Konfidentiell databehandling i Azure (förhandsversion)

Azure Database for PostgreSQL – flexibel server stöder konfidentiell databehandling i Azure via betrodda körningsmiljöer (TEE) som ger maskinvarubaserat skydd för data som används. Den här funktionen skyddar klientdata från obehörig åtkomst från operativsystemet, hypervisor-programmet eller andra program.

För lösningar med flera klientorganisationer som hanterar känsliga data ger konfidentiell databehandling dataskydd på maskinvarunivå under bearbetningen. Använd konfidentiell databehandling när klientorganisationer har strikta dataskyddskrav eller regelefterlevnadsbehov eller när du behöver se till att programleverantören inte kan komma åt klientdata.

Anteckning

Konfidentiell databehandling är för närvarande i förhandsversion och kräver specifika SKU:er för virtuella datorer.

Mer information finns i Konfidentiell databehandling i Azure för Azure Database for PostgreSQL (förhandsversion).

Kryptering

Data som lagras i Azure Database for PostgreSQL – flexibel server krypteras som standard i vila med hjälp av Microsoft-hanterade nycklar, men du kan också använda kundhanterade nycklar (CMK:er) för att tillåta klientorganisationer att ange sina egna krypteringsnycklar.

När du använder CMK:er kan du ange egna krypteringsnycklar som lagras i Azure Key Vault. I miljöer med flera klienter kan du med den här metoden använda olika krypteringsnycklar för olika klienter, även när deras data lagras på samma databasserver. Den här funktionen ger också klientorganisationer kontroll över sina egna krypteringsnycklar. Om en klientorganisation väljer att inaktivera sitt konto säkerställer borttagning av den associerade nyckeln att deras data inte längre är tillgängliga.

Azure Database for PostgreSQL – flexibel server stöder automatiska uppdateringar av nyckelversioner för CMK:er. Den här funktionen uppdateras automatiskt till nya nyckelversioner efter rotation i Key Vault och kräver inte manuell hantering av nyckelversioner. I miljöer med flera klientorganisationer där regelefterlevnad kräver regelbunden nyckelrotation minskar den här automatiseringen manuella driftuppgifter och underhåller dataskydd utan avbrott i tjänsten.

Mer information finns i följande artiklar:

Deltagare

Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.

Huvudförfattare:

Övriga medarbetare:

  • John Downs | Principal Software Engineer, Azure Patterns &Practices
  • Arsen Vladimirskiy | Huvudkundtekniker, FastTrack för Azure
  • Paul Burpo | Huvudkundtekniker, FastTrack för Azure ISV:er
  • Assaf Fraenkel | Senior Engineer/Data Architect, Azure FastTrack för ISV:er och start-ups

Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.