Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-06-12 GMT+08:00

Consulta de registros de auditoría de base de datos

Prerrequisitos

  • La función de auditoría se ha habilitado mediante el establecimiento de audit_enabled. El valor predeterminado de audit_enabled es ON. Para deshabilitar la auditoría, configúrela en OFF haciendo referencia a Modificación de parámetros de base de datos.
  • Se han configurado los elementos de auditoría. Para obtener más información acerca de cómo habilitar los elementos de auditoría, consulte Configuración de los registros de auditoría de la base de datos.
  • La base de datos se está ejecutando correctamente y se han ejecutado una serie de operaciones de adición, modificación, eliminación y consulta en la base de datos. De lo contrario, no se genera ningún resultado de auditoría.
  • Los registros de auditoría de cada nodo de base de datos se registran por separado.
  • Sólo los usuarios con el permiso AUDITADMIN pueden ver los registros de auditoría.

Consulta de registros de auditoría de base de datos

Método 1: Los registros de auditoría ocuparán espacio en disco. Para evitar el uso excesivo del disco, GaussDB(DWS) admite el volcado del registro de auditoría. Puede habilitar la función Log Dump para volcar registros de auditoría a OBS (es necesario crear un bucket OBS para almacenar primero los registros de auditoría). Para obtener más información sobre cómo ver los registros volcados, consulte Consulta de volcados de registro de auditoría.

Método 2: Utilice la función Log de LTS para ver o descargar los registros de auditoría de la base de datos recopilados. Para obtener más información, véase Comprobación de registros de clúster.

Método 3: Los registros de auditoría de la base de datos se almacenan en la base de datos de forma predeterminada. Después de conectarse al clúster, puede utilizar la función pg_query_audit para ver los registros. Para obtener más información, véase Uso de funciones para ver registros de auditoría de base de datos.

Uso de funciones para ver registros de auditoría de base de datos

  1. Utilice la herramienta cliente SQL para conectarse al clúster de base de datos. Para obtener más información, véase Conexión de clústeres.
  2. Utilice la función pg_query_audit para consultar los registros de auditoría del CN actual. La sintaxis es la siguiente:

    1
    pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)
    

    startime y endtime indican la hora de inicio y la hora de finalización del registro de auditoría, respectivamente. audit_log indica la ruta del archivo físico de los registros de auditoría consultados. Si no se especifica audit_log, se consulta la información del registro de auditoría de la instancia actual.

    Por ejemplo, vea los registros de auditoría del nodo CN actual en un período especificado.
    1
    SELECT * FROM pg_query_audit('2021-02-23 21:49:00','2021-02-23 21:50:00');
    

    El resultado de la consulta es el siguiente:

    1
    2
    3
             begintime         |          endtime          | operation_type | audit_type | result |  username  | database | client_conninfo | object_name | command_text |                           detail_info                            | transaction_xid | query_id |  node_name   |               session_id                | local_port | remote_port 
    ---------------------------+---------------------------+----------------+------------+--------+------------+----------+-----------------+-------------+-----------------+------------------------------------------------------------------+-----------------+----------+--------------+------------------------------+------------+-------------
     2021-02-23 21:49:57.76+08 | 2021-02-23 21:49:57.82+08 | login_logout   | user_login | ok     | dbadmin | gaussdb | gsql@[local]    | gaussdb    | login db     | login db(gaussdb) successfully, the current user is: dbadmin | 0               | 0        | coordinator1 | 140324035360512.667403397820909.coordinator1 | 27777      | 
    

    Este registro indica que el usuario dbadmin inició sesión en la base de datos gaussdb en 2021-02-23 21:49:57.82 (GMT+08:00). Después de iniciar el host especificado por log_hostname y conectar un cliente a su dirección IP, el nombre de host encontrado por resolución DNS inversa se muestra siguiendo el signo at (@) en el valor de client_conninfo.

  3. Utilice la función pgxc_query_audit para consultar los registros de auditoría de todos los CN. La sintaxis es la siguiente:

    1
    pgxc_query_audit(timestamptz startime,timestamptz endtime)
    
    Por ejemplo, vea los registros de auditoría de todos los nodos CN en un período especificado.
    1
    SELECT * FROM pgxc_query_audit('2021-02-23 22:05:00','2021-02-23 22:07:00') where audit_type = 'user_login' and username = 'user1';
    

    El resultado de la consulta es el siguiente:

    1
    2
    3
    4
             begintime          |          endtime           | operation_type | audit_type | result | username | database | client_conninfo | object_name | command_text |                         detail_info                        | transaction_xid | query_id |  node_name   |               session_id                     | local_port | remote_port 
    ----------------------------+----------------------------+----------------+------------+--------+----------+----------+-----------------+-------------+--------------+------------------------------------------------------------+-----------------+----------+--------------+----------------------------------------------+------------+-------------
     2021-02-23 22:06:22.219+08 | 2021-02-23 22:06:22.271+08 | login_lgout    | user_login | ok     | user1    | gaussdb  | gsql@[local]    | gaussdb     | login db     | login db(gaussdb) successfully, the current user is: user1 | 0               | 0        | coordinator2 | 140689577342720.667404382271356.coordinator  | 27782      | 
     2021-02-23 22:05:51.697+08 | 2021-02-23 22:05:51.749+08 | login_lgout    | user_login | ok     | user1    | gaussdb  | gsql@[local]    | gaussdb     | login db     | login db(gaussdb) successfully, the current user is: user1 | 0               | 0        | coordinator1 | 140525048424192.667404351749143.coordinator1 | 27777      | 
    

    El resultado de la consulta muestra los registros de inicio de sesión exitosos de user1 en CN1 y CN2.

  4. Consultar los registros de auditoría de varios objetos.

    1
    2
    SET audit_object_name_format TO 'all';
    SELECT object_name,result,operation_type,command_text FROM pgxc_query_audit('2022-08-26 8:00:00','2022-08-26 22:55:00') where command_text like '%student%';
    

    El resultado de la consulta es el siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
                               object_name                            | result | operation_type |                                                                         command_text                             
    
    ------------------------------------------------------------------+--------+----------------+------------------------------------------------------------------------------------------------------------------
    --------------------------------------------
     student                                                          | ok     | ddl            | CREATE TABLE student(stuNo int, stuName TEXT);
     studentscore                                                     | ok     | ddl            | CREATE TABLE studentscore(stuNo int, stuscore int);
     ["public.student_view01","public.studentscore","public.student"] | ok     | ddl            | CREATE OR REPLACE VIEW student_view01 AS SELECT * FROM student t1 where t1.stuNo in (select stuNo from studentscore t2 where t1.stuNo = t2.stuNo);
     ["public.student_view01","public.student","public.studentscore"] | ok     | dml            | SELECT * FROM student_view01;
    

    En la columna object_name, se muestran la tabla, la vista y la tabla base asociados a la vista.