Delen via


Auditlogboekregistratie in Azure Database for PostgreSQL - Flexible Server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Auditlogboekregistratie van databaseactiviteiten in Azure Database for PostgreSQL flexibele server is beschikbaar via de PostgreSQL Audit-extensie: pgAudit. pgAudit biedt gedetailleerde auditlogboekregistratie van sessies en/of objecten.

Zie het Azure-activiteitenlogboek als u logboeken op azure-resourceniveau wilt voor bewerkingen zoals het schalen van berekeningen en opslag.

Overwegingen voor gebruik

Standaard worden pgAudit-logboekinstructies samen met uw reguliere logboeken verzonden met behulp van de standaardfunctie voor logboekregistratie van Postgres. In azure Database for PostgreSQL flexibele server kunt u alle logboeken configureren die naar azure Monitor Log Store moeten worden verzonden voor latere analyses in Log Analytics. Als u Logboekregistratie van Azure Monitor-resources inschakelt, worden uw logboeken automatisch (in JSON-indeling) verzonden naar Azure Storage-, Event Hubs- en/of Azure Monitor-logboeken, afhankelijk van uw keuze.

Als u wilt weten hoe u logboekregistratie instelt voor Azure Storage-, Event Hubs- of Azure Monitor-logboeken, gaat u naar de sectie resourcelogboeken van het artikel serverlogboeken.

PgAudit installeren

Voordat u de pgAudit-extensie in Azure Database for PostgreSQL flexibele server kunt installeren, moet u de pgAudit-extensie toestaan voor gebruik.

Azure Portal gebruiken:

  1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
  2. Selecteer Serverparameters op de zijbalk.
  3. Zoek de azure.extensions parameter.
  4. Selecteer pgAudit als extensie die u wilt toestaan. Schermopname van Azure Database for PostgreSQL - uitbreidingen voor toestaan voor installatie.

Azure CLI gebruiken:

U kunt extensies voor de lijst toestaan via de opdracht CLI-parameterset.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value pgAudit

Als u pgAudit wilt installeren, moet u deze opnemen in de gedeelde preloadbibliotheken van de server. Voor een wijziging van de parameter van shared_preload_libraries Postgres moet de server opnieuw worden opgestart. U kunt parameters wijzigen met behulp van Azure Portal, Azure CLI of REST API.

Azure Portal gebruiken:

  1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.

  2. Selecteer Serverparameters op de zijbalk.

  3. Zoek de shared_preload_libraries parameter.

  4. Selecteer pgaudit. Schermopname van de flexibele Azure Database for PostgreSQL-server die shared_preload_libraries inschakelt voor pgaudit.

  5. U kunt controleren of pgaudit is geladen in shared_preload_libraries door de volgende query uit te voeren in psql:

    show shared_preload_libraries;
    

    Als het goed is, ziet u pgaudit in het queryresultaat dat shared_preload_libraries retourneert.

  6. Maak verbinding met uw server met behulp van een client (zoals psql) en schakel de pgAudit-extensie in.

    CREATE EXTENSION pgaudit;
    

Tip

Als er een fout wordt weergegeven, controleert u of u de server opnieuw hebt opgestart nadat u deze hebt opgeslagen shared_preload_libraries.

pgAudit-instellingen

pgAudit stelt u in staat om logboekregistratie van sessie- of objectcontrole te configureren. Logboekregistratie van sessiecontrole verzendt gedetailleerde logboeken met uitgevoerde instructies. Logboekregistratie van objectcontrole is een controlebereik voor specifieke relaties. U kunt ervoor kiezen om een of beide typen logboekregistratie in te stellen.

Zodra u pgAudit hebt ingeschakeld, kunt u de parameters configureren om logboekregistratie te starten. Volg de onderstaande instructies om pgAudit te configureren. Azure Portal gebruiken:

  1. Selecteer uw Azure Database for PostgreSQL-server.
  2. Selecteer Serverparameters op de zijbalk.
  3. Zoek naar de pgaudit parameters.
  4. Kies de juiste instellingenparameter om te bewerken. Bijvoorbeeld om logboekregistratie in te stellen pgaudit.log op WRITESchermopname van Azure Database for PostgreSQL - logboekregistratie configureren met pgaudit
  5. Klik op De knop Opslaan om wijzigingen op te slaan

De pgAudit-documentatie bevat de definitie van elke parameter. Test eerst de parameters en controleer of u het verwachte gedrag krijgt.

Notitie

Als u op pgaudit.log_client ON instelt, worden logboeken omgeleid naar een clientproces (zoals psql) in plaats van naar het bestand te worden geschreven. Deze instelling moet over het algemeen uitgeschakeld blijven.

pgaudit.log_level wordt alleen ingeschakeld als pgaudit.log_client aan is.

Notitie

In Azure Database for PostgreSQL Flexibele server pgaudit.log kan niet worden ingesteld met behulp van een - (min)-tekensnelkoppeling, zoals beschreven in de pgAudit-documentatie. Alle vereiste instructieklassen (READ, WRITE, enzovoort) moeten afzonderlijk worden opgegeven.

Notitie

Als u de parameter log_statement instelt op DDL of ALL en een CREATE ROLE/USER ... WITH PASSWORD ... ; of ALTER ROLE/USER ... WITH PASSWORD ... ;, opdracht uitvoert, maakt PostgreSQL een vermelding in de PostgreSQL-logboeken, waarbij het wachtwoord is vastgelegd in duidelijke tekst, wat een mogelijk beveiligingsrisico kan veroorzaken. Dit is het verwachte gedrag volgens het ontwerp van de PostgreSQL-engine. U kunt echter de PGAudit-extensie gebruiken en de parameter instellen pgaudit.log='DDL' op de pagina serverparameters, die geen instructie in Postgres-logboek registreert CREATE/ALTER ROLE , in tegenstelling tot postgres-instelling log_statement='DDL' . Als u deze instructies wel moet vastleggen, kunt u ook toevoegen pgaudit.log ='ROLE' , waardoor het wachtwoord in logboeken tijdens logboekregistratie 'CREATE/ALTER ROLE' wordt bewerkt.

Indeling van auditlogboek

Elke controlevermelding wordt aangegeven aan AUDIT: het begin van de logboekregel. De indeling van de rest van de vermelding wordt beschreven in de pgAudit-documentatie.

Aan de slag

Als u snel aan de slag wilt gaan, stelt u deze in pgaudit.log WRITEen opent u uw serverlogboeken om de uitvoer te controleren.

Controlelogboeken weergeven

De manier waarop u de logboeken opent, is afhankelijk van het eindpunt dat u kiest. Zie het artikel over het logboekopslagaccount voor Azure Storage. Zie het artikel over Azure-logboeken streamen voor Event Hubs.

Voor Azure Monitor-logboeken worden logboeken verzonden naar de werkruimte die u hebt geselecteerd. De Postgres-logboeken maken gebruik van de verzamelingsmodus AzureDiagnostics , zodat ze kunnen worden opgevraagd vanuit de tabel AzureDiagnostics. De velden in de tabel worden hieronder beschreven. Meer informatie over het uitvoeren van query's en waarschuwingen in het overzicht van azure Monitor-logboeken.

U kunt deze query gebruiken om aan de slag te gaan. U kunt waarschuwingen configureren op basis van query's.

Zoeken naar alle pgAudit-vermeldingen in Postgres-logboeken voor een bepaalde server in de afgelopen dag

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Volgende stappen