Dela via


Hantera Microsoft Entra-roller i Azure Database for PostgreSQL

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)

  1. Öppna sidan Autentisering för din flexibla Azure Database for PostgreSQL-serverinstans i Azure-portalen.
  2. 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.
  3. Om du vill ta bort en administratör väljer du ikonen Ta bort för den administratör som du vill ta bort.
  4. 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 vara user, groupeller service.
  • 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ör 1 om MFA är aktiverat för användaren/rollen.
  • isAdmin – Returnerar värdet 1 om 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 objectId sö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.