Hantera Microsoft Entra-roller i Azure Database for PostgreSQL flexibel server
GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server
Den här artikeln beskriver hur du kan skapa en Microsoft Entra-ID-aktiverad databasroller i en flexibel Azure Database for PostgreSQL-serverinstans.
Kommentar
Den här guiden förutsätter att du redan har aktiverat Microsoft Entra-autentisering på din flexibla Azure Database for PostgreSQL-serverinstans. Se Konfigurera Microsoft Entra-autentisering
Om du vill lära dig mer om hur du skapar och hanterar Azure-prenumerationsanvändare och deras behörigheter kan du gå till artikeln azure-rollbaserad åtkomstkontroll (Azure RBAC) eller läsa hur du anpassar roller.
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 Portal.
- 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.
- Ta bort en administratör – välj Ikonen Ta bort för den som ska tas bort.
- Välj Spara och vänta tills etableringsåtgärden har slutförts.
Kommentar
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 den första Microsoft Entra-administratören har skapats från Azure Portal eller API:et kan du använda administratörsrollen för att hantera Microsoft Entra-roller i din flexibla Azure Database for PostgreSQL-serverinstans.
Vi rekommenderar att du bekantar dig med Microsofts identitetsplattform för bästa användning av Microsoft Entra-integrering med Azure Database for PostgreSQL – flexibel server.
Huvudtyper
Azure Database for PostgreSQL – flexibel server lagrar internt mappning mellan PostgreSQL-databasroller och unika identifierare för AzureAD-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)
Argument
isAdminValue
boolean
när true
returnerar Administratörsanvändare. När false
returnerar alla Microsoft Entra-användare, inklusive Microsoft Entra-administratörer och icke-administratörer.
Returtyp
TABLE(rolname name, principalType text, objectId text, tenantId text, isMfa integer, isAdmin integer)
en tabell med följande schema:
rolname
namnet på rollen i PostgreSQL.principalType
typ av huvudnamn i Microsoft Entra-ID. Det kan varauser
,group
ellerservice
.objectId
identifieraren för objektet i Microsoft Entra-ID för det här huvudkontot.tenantId
identifieraren för klientorganisationen som är värd för det här huvudkontot i Microsoft Entra-ID.isMfa
returnerar ett värde för1
om användaren/rollen har MFA framtvingas.isAdmin
returnerar ett värde för1
om användaren/rollen är administratör i PostgreSQL.
Skapa en användare/roll med microsoft Entra-huvudnamn
select * from pg_catalog.pgaadauth_create_principal(roleName text, isAdmin boolean, isMfa boolean)
Argument
roleName
text
namnet på den roll som ska skapas. Detta måste matcha namnet på Microsoft Entra-huvudnamnet.
- För användare använder användarens huvudnamn från profilen. För gästanvändare inkluderar du det fullständiga namnet i hemdomänen med taggen #EXT#.
- För grupper och tjänstens huvudnamn använder du visningsnamn . Namnet måste vara unikt i klientorganisationen.
isAdmin
boolean
när true
den skapar en PostgreSQL-administratörsanvändare (medlem i azure_pg_admin
rollen och med CREATEROLE- och CREATEDB-behörigheter). När false
den skapar en vanlig PostgreSQL-användare.
isMfa
boolean
när true
den tillämpar 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 klientorganisationen för huvudkontot till exempel inte har konfigurerats för multifaktorautentisering förhindrar 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
enda värde som består av en sträng "Skapad roll för roleName", där roleName är argumentet som skickas för parametern roleName.
Ta bort en roll med microsoft Entra-huvudnamn
Kom ihåg att alla Microsoft Entra-roller som skapas i PostgreSQL måste tas bort med hjälp av en Microsoft Entra-administratör. Om du använder en vanlig PostgreSQL-administratör för att släppa en Entra-roll resulterar det i ett fel.
DROP ROLE rolename;
Skapa en roll med hjälp av Microsoft Entra-objektidentifierare
select * from pg_catalog.pgaadauth_create_principal_with_oid(roleName text, objectId text, objectType text, isAdmin boolean, isMfa boolean)
Argument
roleName
text
namnet på den roll som ska skapas.
objectId
text
unikt objektidentifierare för Microsoft Entra-objektet.
- För användare, grupper och hanterade identiteter kan objectId hittas genom att söka efter objektnamnet på Microsoft Entra-ID-sidan i Azure Portal. Se den här guiden som exempel
- För grupper och tjänstens huvudnamn använder du visningsnamn . Namnet måste vara unikt i klientorganisationen.
- För program måste objectId för motsvarande tjänsthuvudnamn användas. I Azure Portal finns det obligatoriska objectId på sidan Företagsprogram i Azure Portal.
objectType
text
vilken typ av Microsoft Entra-objekt som ska länkas till den här rollen. Det kan vara user
, group
eller service
.
isAdmin
boolean
när true
den skapar en PostgreSQL-administratörsanvändare (medlem i azure_pg_admin
rollen och med CREATEROLE- och CREATEDB-behörigheter). När false
den skapar en vanlig PostgreSQL-användare.
isMfa
boolean
när true
den tillämpar 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 klientorganisationen för huvudkontot till exempel inte har konfigurerats för multifaktorautentisering förhindrar 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
enda värde som består av en sträng "Skapad roll för roleName", där roleName är argumentet som skickas för parametern roleName.
Aktivera Microsoft Entra-autentisering för en befintlig PostgreSQL-roll med sql
Azure Database for PostgreSQL – flexibel server använder säkerhetsetiketter som är associerade med databasroller för att lagra motsvarande Microsoft Entra-ID-mappning.
Du kan använda följande SQL för att tilldela den säkerhetsetikett som krävs för att mappa den till ett Microsoft Entra-objekt:
SECURITY LABEL for "pgaadauth" on role "<roleName>" is 'aadauth,oid=<objectId>,type=<objectType>,admin';
Argument
roleName
text
namn på en befintlig PostgreSQL-roll som Microsoft Entra-autentisering måste aktiveras för.
objectId
text
unikt objektidentifierare för Microsoft Entra-objektet.
objectType
text
Det kan anges till user
, group
eller service
(för program eller hanterade identiteter som ansluter under sina egna autentiseringsuppgifter för tjänsten).
admin
text
det kan vara närvarande eller frånvarande. Användare/roller som den här delen finns i säkerhetsetiketten för kan hantera andra Microsoft Entra-ID-roller.