

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# 
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

È possibile raccogliere informazioni più approfondite sulle attività dei database, tra cui query, query in attesa di blocchi, checkpoint e molti altri dettagli impostando alcuni parametri elencati nella tabella seguente. Questo argomento illustra la registrazione delle query.


| Parametro | Predefinita | Description | 
| --- | --- | --- | 
| log\$1connections | – | Registra ogni connessione riuscita. Per informazioni su come utilizzare questo parametro con `log_disconnections` per rilevare l'abbandono della connessione, consulta [](AuroraPostgreSQL.BestPractices.connection_pooling.md).  | 
| log\$1disconnections | – | Registra il momento in cui termina ciascuna sessione e la relativa durata. Per informazioni su come utilizzare questo parametro con `log_connections` per rilevare l'abbandono della connessione, consulta [](AuroraPostgreSQL.BestPractices.connection_pooling.md). | 
| log\$1checkpoints | – |  Non applicabile per Aurora PostgreSQL | 
| log\$1lock\$1waits | – | Registra lunghe attese di lock. Per impostazione predefinita, questo parametro non è impostato. | 
| log\$1min\$1duration\$1sample | – | Imposta il tempo (ms) minimo di esecuzione oltre il quale viene registrato un campione di istruzioni. La dimensione del campione viene impostata utilizzando il parametro log\$1statement\$1sample\$1rate. | 
| log\$1min\$1duration\$1statement | – | Viene registrata qualsiasi istruzione SQL che viene eseguita per il periodo specificato o per più tempo. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate. | 
| log\$1statement | – | Imposta il tipo di istruzioni registrate. Per impostazione predefinita, questo parametro non è impostato, ma puoi modificarlo in `all`, `ddl` o `mod` per specificare i tipi di istruzioni SQL che vuoi registrare. Se specifichi un valore diverso da `none` per questo parametro, dovrai adottare ulteriori misure per evitare l'esposizione delle password nei file di log. Per ulteriori informazioni, consulta [Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle queryRiduzione del rischio di esposizione delle password](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk).  | 
| log\$1statement\$1sample\$1rate | – | La percentuale di istruzioni che superano il tempo specificato in `log_min_duration_sample` da registrare, espressa come valore in virgola mobile compreso tra 0,0 e 1,0.  | 
| log\$1statement\$1stats | – | Scrive le statistiche cumulative sulla prestazione nel registro del server. | 

## Utilizzo della registrazione per trovare query lente
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

È possibile registrare istruzioni e query SQL per trovare le query con prestazioni lente. Puoi attivare questa funzionalità modificando le impostazioni nei parametri `log_statement` e `log_min_duration` come descritto in questa sezione. Prima di attivare la registrazione delle query per il cluster database Aurora PostgreSQL, è necessario essere consapevoli della possibile esposizione delle password nei registri e di come mitigare i rischi. Per ulteriori informazioni, consulta [Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle queryRiduzione del rischio di esposizione delle password](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

Di seguito sono disponibili informazioni di riferimento sui parametri `log_statement` e `log_min_duration`.log\$1statement

Questo parametro specifica il tipo di istruzioni SQL che devono essere inviate al registro. Il valore predefinito è `none`. Se modifichi questo parametro in `all`, `ddl` o `mod`, esegui le azioni consigliate per ridurre il rischio di esporre le password nei log. Per ulteriori informazioni, consulta [Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle queryRiduzione del rischio di esposizione delle password](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk). 

**tutto**  
Registra tutte le istruzioni. Questa impostazione è consigliata per il debug.

**ddl**  
Registra tutte le istruzioni DDL (Data Definition Language), come CREATE, ALTER, DROP e così via.

**mod**  
Registra tutte le istruzioni DDL e DML (Data Manipulation Language), come INSERT, UPDATE e DELETE, che modificano i dati.

**nessuno**  
Nessuna istruzione SQL viene registrata. Consigliamo questa impostazione per evitare il rischio di esporre le password nei registri.log\$1min\$1duration\$1statement

Viene registrata qualsiasi istruzione SQL che viene eseguita per il periodo specificato o per più tempo. Per impostazione predefinita, questo parametro non è impostato. L'attivazione di questo parametro può aiutarti a trovare query non ottimizzate.

**–1–2147483647**  
Il numero di millisecondi (ms) di runtime durante il quale un'istruzione viene registrata.

**Per configurare la registrazione delle query**

Questi passaggi presuppongono che il cluster database Aurora PostgreSQL utilizzi un gruppo di parametri cluster database personalizzato. 

1. Imposta il parametro `log_statement` su `all`. L'esempio seguente mostra le informazioni scritte nel file `postgresql.log` con questa impostazione del parametro.

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. Impostare il parametro `log_min_duration_statement`. L'esempio seguente mostra le informazioni scritte nel file `postgresql.log` quando il parametro è impostato su `1`.

   Le query che superano la durata specificata nel parametro `log_min_duration_statement` vengono registrate. Di seguito viene riportato un esempio. Puoi visualizzare il file di log per il cluster database Aurora PostgreSQL nella console Amazon RDS. 

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### Riduzione del rischio di esposizione delle password quando si utilizza la registrazione delle query
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

Ti consigliamo di mantenere `log_statement` impostato su `none` per evitare di esporre le password. Se imposti `log_statement` su `all`, `ddl` o `mod`, ti consigliamo di eseguire una o più delle seguenti operazioni.
+ Per il client, applica la crittografia delle informazioni sensibili. Per ulteriori informazioni, consulta [Encryption Options](https://www.postgresql.org/docs/current/encryption-options.html) (Opzioni di crittografia) nella documentazione di PostgreSQL. Usa le opzioni `ENCRYPTED` (e `UNENCRYPTED`) delle istruzioni `CREATE` e `ALTER`. Per ulteriori informazioni, consulta [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html) nella documentazione di PostgreSQL.
+ Per il cluster database Aurora PostgreSQL, configura e usa l'estensione di audit PostgreSQL (pgAudit). Questa estensione oscura le informazioni sensibili nelle istruzioni CREATE e ALTER inviate al registro. Per ulteriori informazioni, consulta [Utilizzo di pgAudit per registrare l'attività del database](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md). 
+ Limita CloudWatch l'accesso ai log.
+ Utilizza meccanismi di autenticazione più efficaci come IAM.