Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du skapar Microsoft Entra ID-aktiverade databasroller i en flexibel Azure Database for PostgreSQL-serverinstans.
Mer information om hur du skapar och hanterar Azure-prenumerationsanvändare och deras behörigheter finns i artikeln Rollbaserad åtkomstkontroll i Azure (Azure RBAC) eller hur du anpassar roller.
Anmärkning
Den här guiden förutsätter att du redan har aktiverat Microsoft Entra-autentisering på din flexibla Azure Database for PostgreSQL-serverinstans.
Skapa eller ta bort Microsoft Entra-administratörer med hjälp av API:et Azure Portal eller Azure Resource Manager (ARM)
- Öppna sidan Autentisering för din flexibla Azure Database for PostgreSQL-serverinstans i Azure-portalen.
- Om du vill lägga till en administratör väljer du Lägg till Microsoft Entra-administratör och väljer en användare, grupp, ett program eller en hanterad identitet från den aktuella Microsoft Entra-klientorganisationen.
- Om du vill ta bort en administratör väljer du ikonen Ta bort för den administratör som du vill ta bort.
- Välj Spara och vänta tills provisioneringsoperationen har slutförts.
Anmärkning
Stöd för Hantering av Microsoft Entra-administratörer via Azure SDK, az cli och Azure PowerShell kommer snart.
Hantera Microsoft Entra-roller med SQL
När du har skapat den första Microsoft Entra-administratören från Azure-portalen eller API:et kan du använda administratörsrollen för att hantera Microsoft Entra-roller i din flexibla Azure Database for PostgreSQL-serverinstans.
För bästa möjliga upplevelse av Microsoft Entra-integrering i Azure Database for PostgreSQL rekommenderar vi att du bekantar dig med Microsofts identitetsplattform.
Huvudtyper
Azure Database for PostgreSQL lagrar internt mappningen mellan PostgreSQL-databasroller och unika identifierare för Microsoft Entra-objekt. Varje PostgreSQL-databasroll kan mappas till någon av följande Microsoft Entra-objekttyper:
- Användare – Inklusive lokala klient- och gästanvändare.
- Tjänstens huvudnamn – inklusive program och hanterade identiteter
- Grupp – När en PostgreSQL-roll är länkad till en Microsoft Entra-grupp kan alla användare eller tjänsthuvudnamnsmedlemmar i den här gruppen ansluta till den flexibla serverinstansen Azure Database for PostgreSQL med grupprollen.
Lista Microsoft Entra-roller med SQL
select * from pg_catalog.pgaadauth_list_principals(isAdminValue boolean)
Arguments
isAdminValue
              boolean – När true, returnerar administratörsanvändare. När false returnerar, returneras alla Microsoft Entra-användare, inklusive Microsoft Entra-administratörer och icke-administratörer.
Returtyp
              TABLE(rolename name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer) – En tabell med följande schema:
- 
              rolename– Namnet på rollen i PostgreSQL.
- 
              principalType– Typ av huvudenhet i Microsoft Entra ID. Det kan varauser,groupellerservice.
- 
              objectId– Identifieraren för objektet i Microsoft Entra-ID för det här huvudkontot.
- 
              tenantId– Identifieraren för den klientorganisation som är värd för detta huvudkonto i Microsoft Entra ID.
- 
              isMfa– Returnerar ett värde för1om MFA är aktiverat för användaren/rollen.
- 
              isAdmin– Returnerar värdet1om användaren/rollen är administratör i PostgreSQL.
Skapa en användare eller roll med ett Microsoft Entra-huvudnamn
select * from pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)
Arguments
roleName
              text namnet på rollen som ska skapas. Det här namnet måste matcha namnet på Microsoft Entra-huvudnamnet.
- För användare använder du användarens huvudnamn från profilen. För gästanvändare inkluderar du det fullständiga namnet i hemdomänen med taggen #EXT#.
- Använd visningsnamnet för grupper och tjänstens huvudnamn. Namnet måste vara unikt i klientorganisationen.
isAdmin
              boolean när trueskapar en PostgreSQL-administratörsanvändare (medlem i azure_pg_admin rollen och med CREATEROLE- och CREATEB-behörigheter). När falseskapar du en vanlig PostgreSQL-användare.
isMfa
              boolean when true, framtvingar multifaktorautentisering för den här PostgreSQL-användaren.
Viktigt!
Flaggan isMfa testar anspråket mfa i Microsoft Entra-ID-token, men det påverkar inte flödet för tokenförvärv. Om huvudanvändarens klientorganisation till exempel inte har konfigurerats för multifaktorautentisering, hindrar det användningen av funktionen. Och om klientorganisationen kräver multifaktorautentisering för alla token, gör den här flaggan värdelös.
Returtyp
              text ett enda värde som består av en sträng "Skapad roll för roleName", där roleName är argumentet du skickar för parametern roleName .
Ta bort en roll med ett Microsoft Entra-huvudnamn
Du kan släppa en roll som motsvarar ett Microsoft Entra-ID-huvudnamn på tre sätt:
- Azure-portalen 
- API:et för Azure Resource Manager (ARM) 
- Genom att köra följande SQL-instruktion: - DROP ROLE rolename;
Anmärkning
Azure-portalen visar endast administratörsroller. Om du vill släppa en icke-administratörsroll använder du antingen AZURE Resource Manager-API:et (ARM) eller SQL-instruktionen.
Skapa en roll med hjälp av Microsoft Entra ID-objektidentifierare
select * from pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)
Arguments
roleName
              text namnet på rollen som ska skapas.
objectId
              text unikt objektidentifierare för Microsoft Entra-objektet.
- För användare, grupper och hanterade identiteter hittar du genom att objectIdsöka efter objektnamnet på Microsoft Entra-ID-sidan i Azure-portalen. Se den här guiden som ett exempel.
- Använd visningsnamnet för grupper och tjänstens huvudnamn. Namnet måste vara unikt i klientorganisationen.
- För program använder du objectId för motsvarande tjänsthuvudnamn. I Azure-portalen hittar du det nödvändiga objectId på sidan Företagsprogram .
objectType
              text typ av Microsoft Entra-objekt som ska länkas till den här rollen. Det kan vara user, groupeller service.
isAdmin
              boolean när trueskapar en PostgreSQL-administratörsanvändare (medlem i azure_pg_admin rollen och med CREATEROLE- och CREATEB-behörigheter). När falseskapar du en vanlig PostgreSQL-användare.
isMfa
              boolean when true, framtvingar multifaktorautentisering för den här PostgreSQL-användaren.
Viktigt!
Flaggan isMfa testar anspråket mfa i Microsoft Entra-ID-token, men det påverkar inte flödet för tokenförvärv. Om huvudanvändarens klientorganisation till exempel inte har konfigurerats för multifaktorautentisering, hindrar det användningen av funktionen. Och om klientorganisationen kräver multifaktorautentisering för alla token, gör den här flaggan värdelös.
Returtyp
              text ett enda värde som består av en sträng "Skapad roll för roleName", där roleName är argumentet du skickar för parametern roleName .
Aktivera Microsoft Entra-autentisering för en befintlig PostgreSQL-roll med sql
Azure Database for PostgreSQL använder säkerhetsetiketter som är associerade med databasroller för att lagra motsvarande Microsoft Entra-ID-mappning.
Använd följande SQL för att tilldela den nödvändiga säkerhetsetiketten och mappa den till ett Microsoft Entra-objekt:
SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';
Arguments
roleName
              text namn på en befintlig PostgreSQL-roll för att aktivera Microsoft Entra-autentisering.
objectId
              text unikt objektidentifierare för Microsoft Entra-objektet.
objectType
              text inställd på user, groupeller service (för program eller hanterade identiteter som ansluter under sina egna autentiseringsuppgifter för tjänsten).
admin
              text inställd på att vara närvarande eller frånvarande. Om det finns i säkerhetsetiketten kan användare eller roller hantera andra Microsoft Entra-ID-roller.