Granskningsloggning i Azure Database for PostgreSQL – flexibel server
GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server
Granskningsloggning av databasaktiviteter i Azure Database for PostgreSQL – flexibel server är tillgänglig via pgaudit
tillägget. pgaudit
innehåller detaljerad sessions- och/eller objektgranskningsloggning.
Om du vill ha Azure-resursnivåloggar för åtgärder som beräkning och lagringsskalning kan du läsa Azure-aktivitetsloggen.
Användningsöverväganden
Som standard pgaudit
genereras logginstruktioner och dina vanliga logginstruktioner med postgres standardloggningsfunktion. I den flexibla Azure Database for PostgreSQL-servern kan du konfigurera alla loggar som ska skickas till Azure Monitor Log Store för senare analys i Log Analytics. Om du aktiverar Azure Monitor-resursloggning skickas loggarna automatiskt (i JSON-format) till Azure Storage, Event Hubs och/eller Azure Monitor-loggar, beroende på ditt val.
Mer information om hur du konfigurerar loggning till Azure Storage-, Event Hubs- eller Azure Monitor-loggar finns i avsnittet resursloggar i artikeln om serverloggar.
Installerar tillägget
För att kunna använda pgaudit
tillägget måste du tillåtalista, läsa in och skapa tillägget i databasen som du planerar att använda det på.
Konfigurera tilläggsinställningar
pgaudit
gör att du kan konfigurera loggning av sessions- eller objektgranskning. Sessionsgranskningsloggning genererar detaljerade loggar med körda instruktioner. Loggning av objektgranskning är granskningsomfång för specifika relationer. Du kan välja att konfigurera en eller båda typerna av loggning.
När du aktiverar pgaudit
kan du konfigurera dess parametrar för att börja logga.
Om du vill konfigurera pgaudit
kan du följa dessa instruktioner:
Välj din instans av Azure Database för den flexibla PostgreSQL-servern.
På resursmenyn går du till Inställningar och väljer Serverparametrar.
Sök efter parametrarna
pgaudit
.Välj lämplig parameter som ska redigeras. Om du till exempel vill börja logga
INSERT
,UPDATE
,DELETE
,TRUNCATE
ochCOPY
-instruktioner anger dupgaudit.log
tillWRITE
.Spara ändringarna genom att välja Knappen Spara .
Den officiella dokumentationen för pgaudit
innehåller definitionen av varje parameter. Testa parametrarna först och bekräfta att du får det förväntade beteendet.
Om du till exempel anger pgaudit.log_client
PÅ skrivs inte bara granskningshändelser till serverloggen, utan även till klientprocesser (till exempel psql). Den här inställningen bör normalt vara inaktiverad.
pgaudit.log_level
är bara aktiverad när pgaudit.log_client
är på.
I Azure Database for PostgreSQL – flexibel server pgaudit.log
går det inte att ange med hjälp av ett -
(minus) teckengenväg enligt beskrivningen i dokumentationen pgaudit
. Alla obligatoriska instruktionsklasser (LÄS, SKRIV osv.) bör anges individuellt.
Om du anger parametern log_statement
till DDL
eller ALL
och kör ett CREATE ROLE/USER ... WITH PASSWORD ... ;
eller ALTER ROLE/USER ... WITH PASSWORD ... ;
, -kommando skapar PostgreSQL en post i PostgreSQL-loggarna där lösenordet loggas i klartext, vilket kan orsaka en potentiell säkerhetsrisk. Det är det förväntade beteendet enligt PostgreSQL-motordesignen.
Du kan dock använda pgaudit
tillägget och ställa in pgaudit.log
på DDL
, som inte registrerar någon CREATE/ALTER ROLE
instruktion i Postgres-serverloggen, till skillnad från när du anger log_statement
till DDL
. Om du behöver logga dessa instruktioner kan du också ange pgaudit.log
till ROLE
, som redigerar lösenordet från loggarna när du loggar CREATE/ALTER ROLE
.
Format för granskningsloggar
Varje granskningspost börjar med AUDIT:
. Formatet för resten av posten beskrivs i dokumentationen för pgaudit
.
Komma igång
Om du vill börja snabbt anger du pgaudit.log
till ALL
och öppnar serverloggarna för att granska utdata.
Visa granskningsloggar
Hur du kommer åt loggarna beror på vilken slutpunkt du väljer. Se artikeln om logglagringskonto för Azure Storage. Se artikeln strömma Azure-loggar för Event Hubs.
För Azure Monitor-loggar skickas loggar till den arbetsyta som du har valt. Postgres-loggarna använder samlingsläget AzureDiagnostics , så att de kan frågas från tabellen AzureDiagnostics. Läs mer om frågor och aviseringar i översikten över Azure Monitor-loggar.
Du kan använda den här frågan för att komma igång. Du kan konfigurera aviseringar baserat på frågor.
Sök efter alla pgaudit
poster i Postgres-loggar efter en viss server den senaste dagen
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"