Granskningsloggning i Azure Database for PostgreSQL – flexibel server

Granskningsloggning av databasaktiviteter i Azure Database for PostgreSQL ä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 loggar pgaudit satser, och dina vanliga loggmeddelanden skickas via Postgres standardfunktion för loggning. I Azure Database for PostgreSQL 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 tillägget pgaudit måste du lägga till det i tillåtelselistan, ladda och skapa tillägget i den databas där du planerar att använda det.

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 pgauditkan du konfigurera dess parametrar för att börja logga.

Om du vill konfigurera pgauditkan du följa dessa instruktioner:

Använda Azure-portalen:

  1. Välj din instans av Azure Database för PostgreSQL.

  2. På resursmenyn går du till Inställningar och väljer Parametrar.

  3. Sök efter parametrarna pgaudit .

  4. Välj lämplig parameter som ska redigeras. Om du till exempel vill börja logga INSERT, UPDATE, DELETE, TRUNCATEoch COPY -instruktioner anger du pgaudit.log till WRITE.

  5. 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.

Du kan till exempel ställa in pgaudit.log_clientON, vilket gör att granskningshändelser inte bara skrivs till serverloggen, utan även skickas till klientprocesser (som 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 för PostgreSQL går det inte att ange pgaudit.log med kortkommandot - (minustecken) så som beskrivs i dokumentationen pgaudit. Alla obligatoriska instruktionsklasser (READ, WRITE 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.logDDL, 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 satser kan du också ställa in pgaudit.logROLE, vilket maskerar lösenordet i loggarna samtidigt som CREATE/ALTER ROLE loggas.

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 ALLoch ö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 om att 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är dig mer om frågehantering och aviseringar i översikten för Azure Monitor Logs frågor.

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 för en specifik server under det senaste dygnet

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Huvudversionsuppgradering med pgaudit-tillägg installerat

Under en större versionsuppgradering tas pgaudit-tillägget bort automatiskt och återskapas sedan när uppgraderingen har slutförts. När tillägget återställs bevaras inte anpassade konfigurationer som anges i pgaudit.log eller andra relaterade parametrar automatiskt.