Description:

Enable log_disconnections on PostgreSQL Servers.


Rationale:

Enabling log_disconnections helps PostgreSQL Database to Logs end of a session,including duration, which in turn generates query and error logs. Query and error logs can be used to identify, troubleshoot, and repair configuration errors and sub-optimal performance.


Impact:

Enabling this setting will enable a log of all disconnections. If this is enabled for a high traffic server, the log may grow exponentially.


Audit:

From Azure Portal

1. From Azure Home select the Portal Menu

2. Go to Azure Database for PostgreSQL servers

3. For each database, click on Server parameters

4. Search for log_disconnections.

5. Ensure that value is set to ON.


From Azure CLI

Ensure log_disconnections value is set to ON

az postgres server configuration show --resource-group <resourceGroupName> --
server-name <serverName> --name log_disconnections

From PowerShell

Ensure log_disconnections value is set to ON

Get-AzPostgreSqlConfiguration -ResourceGroupName <ResourceGroupName> -
ServerName <ServerName> -Name log_disconnections


Remediation:

From Azure Portal

1. From Azure Home select the Portal Menu

2. Go to Azure Database for PostgreSQL servers

3. For each database, click on Server parameters

4. Search for log_disconnections.

5. Click ON and save.


From Azure CLI

Use the below command to update log_disconnections configuration.

az postgres server configuration set --resource-group <resourceGroupName> --
server-name <serverName> --name log_disconnections --value on

From PowerShell

Use the below command to update log_disconnections configuration.

Update-AzPostgreSqlConfiguration -ResourceGroupName <ResourceGroupName> -
ServerName <ServerName> -Name log_disconnections -Value on

Default Value:

By default log_disconnections is disabled (set to off).

References:

1. https://docs.microsoft.com/enus/rest/api/postgresql/singleserver/configurations/list-by-server

2. https://docs.microsoft.com/en-us/azure/postgresql/howto-configure-serverparameters-using-portal

3.https://docs.microsoft.com/en-us/security/benchmark/azure/security-controls-v3- logging-threat-detection#lt-4-enable-logging-for azure-resources

4.https://learn.microsoft.com/en-us/powershell/module/az.postgresql/getazpostgresqlconfiguration?view=azps-9.2.0#example-2-get-specified-postgresqlconfiguration-by-name