Exclusión de usuarios o bases de datos del registro de auditoría
Como se explica en Archivos de registro de bases de datos de RDS para PostgreSQL, los registros de PostgreSQL consumen espacio de almacenamiento. El uso de la extensión pgAudit aumenta el volumen de datos recopilados en los registros en diversos grados, según los cambios de los que realice un seguimiento. Es posible que no necesite auditar todos los usuarios o bases de datos de su Instancia de base de datos RDS para PostgreSQL.
Para minimizar los impactos en el almacenamiento y evitar la captura innecesaria de registros de auditoría, puede excluir a los usuarios y las bases de datos de la auditoría. También puede cambiar el registro dentro de una sesión determinada. Los siguientes ejemplos muestran cola forma de hacerlo.
nota
La configuración de los parámetros a nivel de sesión tiene prioridad sobre la configuración del grupo de parámetros del grupo de parámetros de la base de datos personalizada para la instancia de la base de datos de RDS for PostgreSQL. Si no desea que los usuarios de la base de datos omitan los ajustes de configuración del registro de auditoría, asegúrese de cambiar sus permisos.
Supongamos que su instancia de base de datos de RDS for PostgreSQL está configurado para auditar el mismo nivel de actividad para todos los usuarios y bases de datos. A continuación, decide que no desea auditar al usuario myuser
. Puede desactivar la auditoría de myuser
con el siguiente comando de SQL.
ALTER USER myuser SET pgaudit.log TO 'NONE';
A continuación, puede utilizar la siguiente consulta para comprobar la columna user_specific_settings
de pgaudit.log
para confirmar que el parámetro está establecido en NONE
.
SELECT usename AS user_name, useconfig AS user_specific_settings FROM pg_user WHERE usename = 'myuser';
Debería ver una salida como la siguiente.
user_name | user_specific_settings
-----------+------------------------
myuser | {pgaudit.log=NONE}
(1 row)
Puede desactivar el registro de un usuario determinado en medio de su sesión con la base de datos con el siguiente comando.
ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';
Utilice la siguiente consulta para comprobar la columna de configuración de pgaudit.log para una combinación específica de usuario y base de datos.
SELECT usename AS "user_name", datname AS "database_name", pg_catalog.array_to_string(setconfig, E'\n') AS "settings" FROM pg_catalog.pg_db_role_setting s LEFT JOIN pg_catalog.pg_database d ON d.oid = setdatabase LEFT JOIN pg_catalog.pg_user r ON r.usesysid = setrole WHERE usename = 'myuser' AND datname = 'mydatabase' ORDER BY 1, 2;
Se muestra una salida similar a la siguiente.
user_name | database_name | settings
-----------+---------------+------------------
myuser | mydatabase | pgaudit.log=none
(1 row)
Tras desactivar la auditoría de myuser
, decide que no desea realizar un seguimiento de los cambios en mydatabase
. Puede desactivar la auditoría de esa base de datos específica mediante el siguiente comando.
ALTER DATABASE mydatabase SET pgaudit.log to 'NONE';
A continuación, utilice la siguiente consulta para comprobar la columna database_specific_settings y confirmar que pgaudit.log tiene el valor NONE.
SELECT a.datname AS database_name, b.setconfig AS database_specific_settings FROM pg_database a FULL JOIN pg_db_role_setting b ON a.oid = b.setdatabase WHERE a.datname = 'mydatabase';
Debería ver una salida como la siguiente.
database_name | database_specific_settings
---------------+----------------------------
mydatabase | {pgaudit.log=NONE}
(1 row)
Para restablecer la configuración predeterminada de myuser, use el siguiente comando:
ALTER USER myuser RESET pgaudit.log;
Para restablecer la configuración predeterminada de una base de datos, use el siguiente comando:
ALTER DATABASE mydatabase RESET pgaudit.log;
Para restablecer el usuario y la base de datos a la configuración por defecto, utilice el siguiente comando.
ALTER USER myuser IN DATABASE mydatabase RESET pgaudit.log;
También puede capturar eventos específicos en el registro configurando pgaudit.log
en uno de los otros valores permitidos para el parámetro pgaudit.log
. Para obtener más información, consulte Lista de ajustes permitidos para el parámetro pgaudit.log.
ALTER USER myuser SET pgaudit.log TO 'read'; ALTER DATABASE mydatabase SET pgaudit.log TO 'function'; ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'read,function'