Condividi tramite


Registrazione di controllo in Database di Azure per PostgreSQL - Server flessibile

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

La registrazione di controllo delle attività del database in Database di Azure per PostgreSQL server flessibile è disponibile tramite l'estensione pgaudit . pgaudit fornisce una sessione dettagliata e/o la registrazione di controllo degli oggetti.

Per i log a livello di risorsa di Azure per operazioni come il ridimensionamento delle risorse di calcolo e archiviazione, vedere Log attività di Azure.

Considerazioni sull'utilizzo

Per impostazione predefinita, pgaudit le istruzioni di log e le normali istruzioni di log vengono generate usando la funzionalità di registrazione standard di Postgres. Nel server flessibile Database di Azure per PostgreSQL è possibile configurare tutti i log da inviare all'archivio log di Monitoraggio di Azure per un'analisi successiva in Log Analytics. Se si abilita la registrazione delle risorse di Monitoraggio di Azure, i log vengono inviati automaticamente (in formato JSON) a Archiviazione di Azure, hub eventi e/o log di Monitoraggio di Azure, a seconda della scelta.

Per informazioni su come configurare la registrazione in Archiviazione di Azure, Hub eventi o log di Monitoraggio di Azure, vedere la sezione log delle risorse dell'articolo sui log del server.

Installazione dell'estensione

Per poter usare l'estensione pgaudit , è necessario consentire, caricare e creare l'estensione nel database in cui si prevede di usarla.

Configurare le impostazioni dell'estensione

pgaudit consente di configurare la registrazione di controllo di sessione o oggetto. La registrazione del controllo sessione genera log dettagliati delle istruzioni eseguite. La registrazione del controllo oggetti ha come ambito il controllo relazioni specifiche. È possibile scegliere di configurare uno o entrambi i tipi di registrazione.

Dopo aver abilitato pgaudit, è possibile configurarne i parametri per avviare la registrazione.

Per configurare pgaudit, è possibile seguire queste istruzioni:

Tramite il portale di Azure:

  1. Selezionare l'istanza di Database di Azure per il server flessibile PostgreSQL.

  2. Dal menu della risorsa, in Impostazioni, selezionare Parametri del server.

  3. Cercare i parametri pgaudit.

  4. Selezionare il parametro appropriato da modificare. Ad esempio, per avviare la registrazione INSERTdi istruzioni , DELETEUPDATE, TRUNCATE, e COPY , impostare su pgaudit.log WRITE.

  5. Selezionare il pulsante Salva per salvare le modifiche.

La documentazione ufficiale di pgaudit fornisce la definizione di ogni parametro. Testare prima i parametri e verificare di ottenere il comportamento previsto.

Ad esempio, l'impostazione su pgaudit.log_client ON non solo scrive gli eventi di controllo nel log del server, ma li invia anche ai processi client (ad esempio psql). Questa impostazione viene in genere disabilitata.

pgaudit.log_level viene abilitato solo quando pgaudit.log_client è attivo.

In Database di Azure per PostgreSQL server pgaudit.log flessibile non può essere impostato usando un collegamento con segno - (meno) come descritto nella pgaudit documentazione. Tutte le classi di istruzioni obbligatorie (READ, WRITE e così via) devono essere specificate singolarmente.

Se si imposta il log_statement parametro su DDL o ALL ed si esegue un CREATE ROLE/USER ... WITH PASSWORD ... ; comando o ALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL crea una voce nei log postgreSQL in cui la password viene registrata in testo non crittografato, causando un potenziale rischio per la sicurezza. Si tratta del comportamento previsto in base alla progettazione del motore PostgreSQL.

È tuttavia possibile usare l'estensione pgaudit e impostare su pgaudit.log DDL, che non registra alcuna CREATE/ALTER ROLE istruzione nel log del server Postgres, a differenza di quando si imposta su log_statement DDL. Se è necessario registrare queste istruzioni, è anche possibile impostare su pgaudit.logROLE, che redatta la password dai log durante la registrazione CREATE/ALTER ROLEdi .

Formato del log di controllo

Ogni voce di controllo inizia con AUDIT:. Il formato del resto della voce è dettagliato nella documentazione di pgaudit.

Introduzione

Per iniziare rapidamente, impostare su pgaudit.log ALLe aprire i log del server per esaminare l'output.

Visualizzazione dei log di controllo

Il modo in cui si accede ai log dipende dall'endpoint scelto. Vedere l'articolo log dell'account di archiviazione per Archiviazione di Azure. Vedere l'articolo Trasmettere i log di Azure per Hub eventi.

Per Log di Monitoraggio di Azure, i log vengono inviati all'area di lavoro selezionata. I log di Postgres usano la modalità di raccolta AzureDiagnostics, in modo che possano essere sottoposte a query dalla tabella AzureDiagnostics. Altre informazioni sull'esecuzione di query e avvisi sono disponibili nella panoramica query sui log di Monitoraggio di Azure.

Per iniziare, è possibile usare questa query. È possibile configurare gli avvisi in base alle query.

Cercare tutte le pgaudit voci nei log di Postgres per un determinato server nell'ultimo giorno

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