Auditoria para PostgreSQL usando pgAudit,Auditoria para PostgreSQL usando pgAudit,Auditoria para PostgreSQL usando pgAudit,Auditoria para PostgreSQL usando pgAudit

Esta página descreve a auditoria de banco de dados usando a extensão pgAudit , que ajuda você a configurar muitos dos logs geralmente necessários para estar em conformidade com certificações governamentais, financeiras e ISO.

Para obter informações gerais sobre extensões do PostgreSQL no Cloud SQL, consulte Extensões do PostgreSQL .

Visão geral

A auditoria de banco de dados no Cloud SQL para PostgreSQL está disponível por meio da extensão pgAudit de código aberto.

Com esta extensão, você pode registrar e rastrear seletivamente operações SQL realizadas em uma determinada instância de banco de dados. A extensão oferece recursos de auditoria para monitorar e registrar um subconjunto selecionado de operações.

A extensão pgAudit se aplica a comandos e consultas SQL executados. Em contrapartida, os Logs de Auditoria do Cloud devem ser usados ​​para auditar operações administrativas e de manutenção realizadas em uma instância do Cloud SQL.

Consulte a página Logs de auditoria para obter mais informações sobre o registro de auditoria no Cloud SQL.

Configurar auditoria de banco de dados no Cloud SQL

As etapas para registro de auditoria usando a extensão pgAudit incluem:

  1. Habilitando o sinalizador cloudsql.enable_pgaudit no Cloud SQL.
  2. Executando um comando para criar a extensão pgAudit.
  3. Definindo valores para o sinalizador pgaudit.log .

Depois de configurar a auditoria do banco de dados, você pode visualizar os logs e, se necessário, desabilitar o registro.

Configurar auditoria

Esta seção descreve os princípios básicos da configuração de operações de auditoria de banco de dados.

Sinalizador inicial para habilitar auditoria

No Cloud SQL, você usa sinalizadores de banco de dados para muitas operações, incluindo o ajuste de parâmetros do PostgreSQL e a configuração de uma instância. O sinalizador cloudsql.enable_pgaudit habilita a auditoria para uma determinada instância de banco de dados. Você pode alterar o valor do sinalizador cloudsql.enable_pgaudit por meio do comando Google Cloud console ou através do comando gcloud .

Use as instruções padrão para sinalizadores para habilitar o sinalizador cloudsql.enable_pgaudit , definindo o valor como on . Por exemplo, para usar o comando gcloud , especifique o seguinte, substituindo o nome da sua instância por [INSTANCE_NAME] :

gcloud sql instances patch [INSTANCE_NAME] --database-flags cloudsql.enable_pgaudit=on

O sinalizador cloudsql.enable_pgaudit está listado com os outros sinalizadores suportados e é específico do Cloud SQL.

Execute o comando para criar a extensão pgAudit

Após habilitar o sinalizador do banco de dados, execute o comando CREATE EXTENSION usando um cliente psql compatível. O comando a seguir cria a extensão pgAudit para todos os bancos de dados em uma instância do Cloud SQL:

CREATE EXTENSION pgaudit;

Definir valores para o sinalizador pgaudit.log

Use as instruções padrão para sinalizadores para definir valores para o sinalizador pgaudit.log .

Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar outras configurações para o banco de dados

Para configurar as definições de auditoria para o banco de dados, siga os procedimentos na seção Personalizando o registro de auditoria do banco de dados .

Exibir logs de auditoria do banco de dados

Para visualizar logs de auditoria, ative os logs de auditoria de acesso a dados para o seu projeto. Os logs do pgAudit gerados para uma determinada instância são enviados ao Cloud Logging como logs de auditoria de acesso a dados . Os usuários podem visualizar os logs do pgAudit gerados por meio do aplicativo Logs Explorer .

No aplicativo Logs Explorer , os logs do pgAudit podem ser visualizados selecionando o filtro de log cloudaudit.googleapis.com/data_access .

Como alternativa, você pode usar a seguinte consulta para mostrar todos os logs do pgAudit para um determinado projeto do Cloud SQL:

resource.type="cloudsql_database"
logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"

Formato de log para pgAudit

Cada entrada de log pgAudit nos logs de auditoria de acesso a dados tem campos que representam as informações coletadas para uma consulta.

Aqui está um exemplo:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "cloudsql.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

A seguir estão as descrições dos campos nos logs de auditoria de acesso a dados:

  • auditClass . O tipo da instrução registrada. Os valores possíveis são READ , WRITE , FUNCTION , ROLE , DDL , MISC e MISC_SET .
  • auditType . SESSION ou OBJECT .
  • chunkCount . A fragmentação pode ocorrer nos dados fornecidos nos campos de parameter e statement . O campo chunkCount indica o número total de blocos. Consulte também a descrição do campo chunkIndex .
  • chunkIndex . Especifica o número de índice dos blocos de dados nos campos de parameter e statement (no contêiner request atual). O número inicial é 1 Consulte também a descrição do campo chunkCount .
  • comando . Por exemplo, ALTER TABLE ou SELECT .
  • parâmetro . O campo chunkIndex pode determinar o conteúdo deste campo; consulte a descrição do campo chunkIndex . Se o valor de pgaudit.log_parameter estiver definido, o campo de parameter poderá conter os parâmetros da instrução como dados CSV entre aspas. Se não houver parâmetros, este campo conterá [none] . Caso contrário, este campo conterá [not logged] .
  • declaração . Declaração que foi executada no backend. O campo chunkIndex pode determinar o conteúdo do campo statement ; consulte a descrição do campo chunkIndex .
  • statementId . ID de instrução exclusivo para esta sessão. Cada ID de instrução representa uma chamada de backend. Os IDs de instrução são sequenciais, mesmo que algumas instruções não sejam registradas.
  • substatementId . ID sequencial para cada subinstrução dentro da instrução principal.

Alguns desses campos também são descritos na documentação do pgAudit .

Desativar auditoria

Para desabilitar a auditoria do banco de dados, defina o valor do sinalizador cloudsql.enable_pgaudit como off . O valor pode ser alterado por meio do Google Cloud console ou por meio do comando gcloud . Use as instruções padrão para sinalizadores para desabilitar o sinalizador cloudsql.enable_pgaudit .

Além disso, execute o comando DROP EXTENSION , usando um cliente psql compatível, para remover o estado da extensão:

DROP EXTENSION pgaudit;

Personalize o registro de auditoria do banco de dados no Cloud SQL

Esta seção descreve maneiras de personalizar o comportamento de auditoria de uma instância de banco de dados.

Para recursos adicionais da extensão, revise a documentação do pgAudit .

Requisito para privilégios de superusuário

No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser . Ao criar uma nova instância do PostgreSQL, o usuário padrão do PostgreSQL é criado para você (embora seja necessário definir a senha do usuário). O usuário padrão do PostgreSQL faz parte da função cloudsqlsuperuser . Para obter mais informações, consulte Usuários do PostgreSQL .

Configurar auditoria para todas as operações de banco de dados na instância

Para configurar a auditoria para todos os bancos de dados em uma instância, você deve aplicar as configurações do pgAudit no nível do sistema. Os parâmetros de auditoria no nível do sistema podem ser definidos apenas como sinalizadores de banco de dados por meio do Google Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar operações específicas em todos os bancos de dados de instância

Para auditoria em todos os bancos de dados de instância, você pode usar oGoogle Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria apenas para operações de leitura e gravação na instância, você pode usar o seguinte comando gcloud . Este exemplo usa uma sintaxe baseada em lista para especificar vários valores:

  gcloud sql instances patch [INSTANCE_NAME] \
  --database-flags ^:^cloudsql.enable_pgaudit=on:pgaudit.log=read,write

O comando substitui os sinalizadores do banco de dados existentes.

Configurar auditoria para um banco de dados específico

Para configurar a auditoria para um banco de dados específico, defina os parâmetros pgAudit no nível do banco de dados. Por exemplo, o seguinte comando SQL pode ser usado para ativar a auditoria de leitura/gravação para um banco de dados chamado finance :

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Configurar auditoria para uma relação

A auditoria de um relacionamento é mais restrita do que a auditoria de um banco de dados específico.

Ao auditar um relacionamento, uma função de auditor exclusiva é atribuída ao parâmetro pgaudit.role . Qualquer objeto ou relacionamento que receba essa função é registrado.

Por exemplo, para configurar a auditoria para todas as consultas SELECT na relação salary no banco de dados employee , você pode usar estes comandos:

employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;

Você também pode auditar um subconjunto de colunas para uma determinada relação.

Por exemplo, o comando a seguir configura o registro de auditoria para ocorrer somente quando as colunas income e tax_status são acessadas a partir da relação salary :

employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;

Configurar auditoria para um usuário de banco de dados

Você pode ativar a auditoria para um usuário específico definindo o parâmetro pgaudit.log em um nível por ROLE .

Por exemplo, o seguinte comando SQL define a auditoria para todas as operações de banco de dados executadas pelo usuário Alice :

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Dicas para gerenciamento de auditoria no Cloud SQL

Ao personalizar o comportamento da auditoria, lembre-se do seguinte:

  • Quando o sinalizador de banco de dados cloudsql.enable_pgaudit é desativado, o registro de auditoria é imediatamente interrompido. No entanto, as configurações aplicadas do pgAudit (por exemplo, as configurações do parâmetro pgaudit.log ) são preservadas, a menos que sejam explicitamente removidas.
  • A instância do banco de dados é reiniciada sempre que o valor do sinalizador de banco de dados para cloudsql.enable_pgaudit é alterado.
  • Usuários de banco de dados criados por meio de comandos CREATE ROLE explícitos não têm o privilégio de modificar as configurações de auditoria. Somente usuários de banco de dados criados por meio do comando Google Cloud console e o comando gcloud podem modificar as configurações de auditoria.
  • Ao habilitar o registro de auditoria de sessão e o registro de auditoria de objeto, instruções referentes a ambos são adicionadas aos registros. O registro de sessão e o registro de objeto não se cancelam nem se modificam.

Limitações da extensão pgAudit no Cloud SQL para PostgreSQL

Os logs de auditoria são gravados temporariamente no disco da instância, ocupando espaço em disco antes de serem enviados ao Cloud Logging. Portanto, revise todas as informações a seguir antes de usar este recurso:

  • A taxa de ingestão de logs é de 4 MB por segundo. Quando a carga gerada pela geração de logs excede a taxa de ingestão, pode ocorrer o seguinte:
    • Pode ocorrer um crescimento indesejado no uso do disco.
    • O espaço em disco pode estar esgotado.
  • Se você tiver habilitado esse recurso e executar muitas consultas que atendem aos seus critérios de auditoria, o uso do disco poderá aumentar muito rápido.
  • Antes de usar este recurso, planeje:
  • Se o espaço em disco disponível estiver esgotado, os logs de auditoria de algumas consultas poderão ser perdidos.
,

Esta página descreve a auditoria de banco de dados usando a extensão pgAudit , que ajuda você a configurar muitos dos logs geralmente necessários para estar em conformidade com certificações governamentais, financeiras e ISO.

Para obter informações gerais sobre extensões do PostgreSQL no Cloud SQL, consulte Extensões do PostgreSQL .

Visão geral

A auditoria de banco de dados no Cloud SQL para PostgreSQL está disponível por meio da extensão pgAudit de código aberto.

Com esta extensão, você pode registrar e rastrear seletivamente operações SQL realizadas em uma determinada instância de banco de dados. A extensão oferece recursos de auditoria para monitorar e registrar um subconjunto selecionado de operações.

A extensão pgAudit se aplica a comandos e consultas SQL executados. Em contrapartida, os Logs de Auditoria do Cloud devem ser usados ​​para auditar operações administrativas e de manutenção realizadas em uma instância do Cloud SQL.

Consulte a página Logs de auditoria para obter mais informações sobre o registro de auditoria no Cloud SQL.

Configurar auditoria de banco de dados no Cloud SQL

As etapas para registro de auditoria usando a extensão pgAudit incluem:

  1. Habilitando o sinalizador cloudsql.enable_pgaudit no Cloud SQL.
  2. Executando um comando para criar a extensão pgAudit.
  3. Definindo valores para o sinalizador pgaudit.log .

Depois de configurar a auditoria do banco de dados, você pode visualizar os logs e, se necessário, desabilitar o registro.

Configurar auditoria

Esta seção descreve os princípios básicos da configuração de operações de auditoria de banco de dados.

Sinalizador inicial para habilitar auditoria

No Cloud SQL, você usa sinalizadores de banco de dados para muitas operações, incluindo o ajuste de parâmetros do PostgreSQL e a configuração de uma instância. O sinalizador cloudsql.enable_pgaudit habilita a auditoria para uma determinada instância de banco de dados. Você pode alterar o valor do sinalizador cloudsql.enable_pgaudit por meio do comando Google Cloud console ou através do comando gcloud .

Use as instruções padrão para sinalizadores para habilitar o sinalizador cloudsql.enable_pgaudit , definindo o valor como on . Por exemplo, para usar o comando gcloud , especifique o seguinte, substituindo o nome da sua instância por [INSTANCE_NAME] :

gcloud sql instances patch [INSTANCE_NAME] --database-flags cloudsql.enable_pgaudit=on

O sinalizador cloudsql.enable_pgaudit está listado com os outros sinalizadores suportados e é específico do Cloud SQL.

Execute o comando para criar a extensão pgAudit

Após habilitar o sinalizador do banco de dados, execute o comando CREATE EXTENSION usando um cliente psql compatível. O comando a seguir cria a extensão pgAudit para todos os bancos de dados em uma instância do Cloud SQL:

CREATE EXTENSION pgaudit;

Definir valores para o sinalizador pgaudit.log

Use as instruções padrão para sinalizadores para definir valores para o sinalizador pgaudit.log .

Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar outras configurações para o banco de dados

Para configurar as definições de auditoria para o banco de dados, siga os procedimentos na seção Personalizando o registro de auditoria do banco de dados .

Exibir logs de auditoria do banco de dados

Para visualizar logs de auditoria, ative os logs de auditoria de acesso a dados para o seu projeto. Os logs do pgAudit gerados para uma determinada instância são enviados ao Cloud Logging como logs de auditoria de acesso a dados . Os usuários podem visualizar os logs do pgAudit gerados por meio do aplicativo Logs Explorer .

No aplicativo Logs Explorer , os logs do pgAudit podem ser visualizados selecionando o filtro de log cloudaudit.googleapis.com/data_access .

Como alternativa, você pode usar a seguinte consulta para mostrar todos os logs do pgAudit para um determinado projeto do Cloud SQL:

resource.type="cloudsql_database"
logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"

Formato de log para pgAudit

Cada entrada de log pgAudit nos logs de auditoria de acesso a dados tem campos que representam as informações coletadas para uma consulta.

Aqui está um exemplo:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "cloudsql.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

A seguir estão as descrições dos campos nos logs de auditoria de acesso a dados:

  • auditClass . O tipo da instrução registrada. Os valores possíveis são READ , WRITE , FUNCTION , ROLE , DDL , MISC e MISC_SET .
  • auditType . SESSION ou OBJECT .
  • chunkCount . A fragmentação pode ocorrer nos dados fornecidos nos campos de parameter e statement . O campo chunkCount indica o número total de blocos. Consulte também a descrição do campo chunkIndex .
  • chunkIndex . Especifica o número de índice dos blocos de dados nos campos de parameter e statement (no contêiner request atual). O número inicial é 1 Consulte também a descrição do campo chunkCount .
  • comando . Por exemplo, ALTER TABLE ou SELECT .
  • parâmetro . O campo chunkIndex pode determinar o conteúdo deste campo; consulte a descrição do campo chunkIndex . Se o valor de pgaudit.log_parameter estiver definido, o campo de parameter poderá conter os parâmetros da instrução como dados CSV entre aspas. Se não houver parâmetros, este campo conterá [none] . Caso contrário, este campo conterá [not logged] .
  • declaração . Declaração que foi executada no backend. O campo chunkIndex pode determinar o conteúdo do campo statement ; consulte a descrição do campo chunkIndex .
  • statementId . ID de instrução exclusivo para esta sessão. Cada ID de instrução representa uma chamada de backend. Os IDs de instrução são sequenciais, mesmo que algumas instruções não sejam registradas.
  • substatementId . ID sequencial para cada subinstrução dentro da instrução principal.

Alguns desses campos também são descritos na documentação do pgAudit .

Desativar auditoria

Para desabilitar a auditoria do banco de dados, defina o valor do sinalizador cloudsql.enable_pgaudit como off . O valor pode ser alterado por meio do Google Cloud console ou por meio do comando gcloud . Use as instruções padrão para sinalizadores para desabilitar o sinalizador cloudsql.enable_pgaudit .

Além disso, execute o comando DROP EXTENSION , usando um cliente psql compatível, para remover o estado da extensão:

DROP EXTENSION pgaudit;

Personalize o registro de auditoria do banco de dados no Cloud SQL

Esta seção descreve maneiras de personalizar o comportamento de auditoria de uma instância de banco de dados.

Para recursos adicionais da extensão, revise a documentação do pgAudit .

Requisito para privilégios de superusuário

No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser . Ao criar uma nova instância do PostgreSQL, o usuário padrão do PostgreSQL é criado para você (embora seja necessário definir a senha do usuário). O usuário padrão do PostgreSQL faz parte da função cloudsqlsuperuser . Para obter mais informações, consulte Usuários do PostgreSQL .

Configurar auditoria para todas as operações de banco de dados na instância

Para configurar a auditoria para todos os bancos de dados em uma instância, você deve aplicar as configurações do pgAudit no nível do sistema. Os parâmetros de auditoria no nível do sistema podem ser definidos apenas como sinalizadores de banco de dados por meio do Google Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar operações específicas em todos os bancos de dados de instância

Para auditoria em todos os bancos de dados de instância, você pode usar oGoogle Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria apenas para operações de leitura e gravação na instância, você pode usar o seguinte comando gcloud . Este exemplo usa uma sintaxe baseada em lista para especificar vários valores:

  gcloud sql instances patch [INSTANCE_NAME] \
  --database-flags ^:^cloudsql.enable_pgaudit=on:pgaudit.log=read,write

O comando substitui os sinalizadores do banco de dados existentes.

Configurar auditoria para um banco de dados específico

Para configurar a auditoria para um banco de dados específico, defina os parâmetros pgAudit no nível do banco de dados. Por exemplo, o seguinte comando SQL pode ser usado para ativar a auditoria de leitura/gravação para um banco de dados chamado finance :

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Configurar auditoria para uma relação

A auditoria de um relacionamento é mais restrita do que a auditoria de um banco de dados específico.

Ao auditar um relacionamento, uma função de auditor exclusiva é atribuída ao parâmetro pgaudit.role . Qualquer objeto ou relacionamento que receba essa função é registrado.

Por exemplo, para configurar a auditoria para todas as consultas SELECT na relação salary no banco de dados employee , você pode usar estes comandos:

employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;

Você também pode auditar um subconjunto de colunas para uma determinada relação.

Por exemplo, o comando a seguir configura o registro de auditoria para ocorrer somente quando as colunas income e tax_status são acessadas a partir da relação salary :

employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;

Configurar auditoria para um usuário de banco de dados

Você pode ativar a auditoria para um usuário específico definindo o parâmetro pgaudit.log em um nível por ROLE .

Por exemplo, o seguinte comando SQL define a auditoria para todas as operações de banco de dados executadas pelo usuário Alice :

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Dicas para gerenciamento de auditoria no Cloud SQL

Ao personalizar o comportamento da auditoria, lembre-se do seguinte:

  • Quando o sinalizador de banco de dados cloudsql.enable_pgaudit é desativado, o registro de auditoria é imediatamente interrompido. No entanto, as configurações aplicadas do pgAudit (por exemplo, as configurações do parâmetro pgaudit.log ) são preservadas, a menos que sejam explicitamente removidas.
  • A instância do banco de dados é reiniciada sempre que o valor do sinalizador de banco de dados para cloudsql.enable_pgaudit é alterado.
  • Usuários de banco de dados criados por meio de comandos CREATE ROLE explícitos não têm o privilégio de modificar as configurações de auditoria. Somente usuários de banco de dados criados por meio do comando Google Cloud console e o comando gcloud podem modificar as configurações de auditoria.
  • Ao habilitar o registro de auditoria de sessão e o registro de auditoria de objeto, instruções referentes a ambos são adicionadas aos registros. O registro de sessão e o registro de objeto não se cancelam nem se modificam.

Limitações da extensão pgAudit no Cloud SQL para PostgreSQL

Os logs de auditoria são gravados temporariamente no disco da instância, ocupando espaço em disco antes de serem enviados ao Cloud Logging. Portanto, revise todas as informações a seguir antes de usar este recurso:

  • A taxa de ingestão de logs é de 4 MB por segundo. Quando a carga gerada pela geração de logs excede a taxa de ingestão, pode ocorrer o seguinte:
    • Pode ocorrer um crescimento indesejado no uso do disco.
    • O espaço em disco pode estar esgotado.
  • Se você tiver habilitado esse recurso e executar muitas consultas que atendem aos seus critérios de auditoria, o uso do disco poderá aumentar muito rápido.
  • Antes de usar este recurso, planeje:
  • Se o espaço em disco disponível estiver esgotado, os logs de auditoria de algumas consultas poderão ser perdidos.
,

Esta página descreve a auditoria de banco de dados usando a extensão pgAudit , que ajuda você a configurar muitos dos logs geralmente necessários para estar em conformidade com certificações governamentais, financeiras e ISO.

Para obter informações gerais sobre extensões do PostgreSQL no Cloud SQL, consulte Extensões do PostgreSQL .

Visão geral

A auditoria de banco de dados no Cloud SQL para PostgreSQL está disponível por meio da extensão pgAudit de código aberto.

Com esta extensão, você pode registrar e rastrear seletivamente operações SQL realizadas em uma determinada instância de banco de dados. A extensão oferece recursos de auditoria para monitorar e registrar um subconjunto selecionado de operações.

A extensão pgAudit se aplica a comandos e consultas SQL executados. Em contrapartida, os Logs de Auditoria do Cloud devem ser usados ​​para auditar operações administrativas e de manutenção realizadas em uma instância do Cloud SQL.

Consulte a página Logs de auditoria para obter mais informações sobre o registro de auditoria no Cloud SQL.

Configurar auditoria de banco de dados no Cloud SQL

As etapas para registro de auditoria usando a extensão pgAudit incluem:

  1. Habilitando o sinalizador cloudsql.enable_pgaudit no Cloud SQL.
  2. Executando um comando para criar a extensão pgAudit.
  3. Definindo valores para o sinalizador pgaudit.log .

Depois de configurar a auditoria do banco de dados, você pode visualizar os logs e, se necessário, desabilitar o registro.

Configurar auditoria

Esta seção descreve os princípios básicos da configuração de operações de auditoria de banco de dados.

Sinalizador inicial para habilitar auditoria

No Cloud SQL, você usa sinalizadores de banco de dados para muitas operações, incluindo o ajuste de parâmetros do PostgreSQL e a configuração de uma instância. O sinalizador cloudsql.enable_pgaudit habilita a auditoria para uma determinada instância de banco de dados. Você pode alterar o valor do sinalizador cloudsql.enable_pgaudit por meio do comando Google Cloud console ou através do comando gcloud .

Use as instruções padrão para sinalizadores para habilitar o sinalizador cloudsql.enable_pgaudit , definindo o valor como on . Por exemplo, para usar o comando gcloud , especifique o seguinte, substituindo o nome da sua instância por [INSTANCE_NAME] :

gcloud sql instances patch [INSTANCE_NAME] --database-flags cloudsql.enable_pgaudit=on

O sinalizador cloudsql.enable_pgaudit está listado com os outros sinalizadores suportados e é específico do Cloud SQL.

Execute o comando para criar a extensão pgAudit

Após habilitar o sinalizador do banco de dados, execute o comando CREATE EXTENSION usando um cliente psql compatível. O comando a seguir cria a extensão pgAudit para todos os bancos de dados em uma instância do Cloud SQL:

CREATE EXTENSION pgaudit;

Definir valores para o sinalizador pgaudit.log

Use as instruções padrão para sinalizadores para definir valores para o sinalizador pgaudit.log .

Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar outras configurações para o banco de dados

Para configurar as definições de auditoria para o banco de dados, siga os procedimentos na seção Personalizando o registro de auditoria do banco de dados .

Exibir logs de auditoria do banco de dados

Para visualizar logs de auditoria, ative os logs de auditoria de acesso a dados para o seu projeto. Os logs do pgAudit gerados para uma determinada instância são enviados ao Cloud Logging como logs de auditoria de acesso a dados . Os usuários podem visualizar os logs do pgAudit gerados por meio do aplicativo Logs Explorer .

No aplicativo Logs Explorer , os logs do pgAudit podem ser visualizados selecionando o filtro de log cloudaudit.googleapis.com/data_access .

Como alternativa, você pode usar a seguinte consulta para mostrar todos os logs do pgAudit para um determinado projeto do Cloud SQL:

resource.type="cloudsql_database"
logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"

Formato de log para pgAudit

Cada entrada de log pgAudit nos logs de auditoria de acesso a dados tem campos que representam as informações coletadas para uma consulta.

Aqui está um exemplo:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "cloudsql.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

A seguir estão as descrições dos campos nos logs de auditoria de acesso a dados:

  • auditClass . O tipo da instrução registrada. Os valores possíveis são READ , WRITE , FUNCTION , ROLE , DDL , MISC e MISC_SET .
  • auditType . SESSION ou OBJECT .
  • chunkCount . A fragmentação pode ocorrer nos dados fornecidos nos campos de parameter e statement . O campo chunkCount indica o número total de blocos. Consulte também a descrição do campo chunkIndex .
  • chunkIndex . Especifica o número de índice dos blocos de dados nos campos de parameter e statement (no contêiner request atual). O número inicial é 1 Consulte também a descrição do campo chunkCount .
  • comando . Por exemplo, ALTER TABLE ou SELECT .
  • parâmetro . O campo chunkIndex pode determinar o conteúdo deste campo; consulte a descrição do campo chunkIndex . Se o valor de pgaudit.log_parameter estiver definido, o campo de parameter poderá conter os parâmetros da instrução como dados CSV entre aspas. Se não houver parâmetros, este campo conterá [none] . Caso contrário, este campo conterá [not logged] .
  • declaração . Declaração que foi executada no backend. O campo chunkIndex pode determinar o conteúdo do campo statement ; consulte a descrição do campo chunkIndex .
  • statementId . ID de instrução exclusivo para esta sessão. Cada ID de instrução representa uma chamada de backend. Os IDs de instrução são sequenciais, mesmo que algumas instruções não sejam registradas.
  • substatementId . ID sequencial para cada subinstrução dentro da instrução principal.

Alguns desses campos também são descritos na documentação do pgAudit .

Desativar auditoria

Para desabilitar a auditoria do banco de dados, defina o valor do sinalizador cloudsql.enable_pgaudit como off . O valor pode ser alterado por meio do Google Cloud console ou por meio do comando gcloud . Use as instruções padrão para sinalizadores para desabilitar o sinalizador cloudsql.enable_pgaudit .

Além disso, execute o comando DROP EXTENSION , usando um cliente psql compatível, para remover o estado da extensão:

DROP EXTENSION pgaudit;

Personalize o registro de auditoria do banco de dados no Cloud SQL

Esta seção descreve maneiras de personalizar o comportamento de auditoria de uma instância de banco de dados.

Para recursos adicionais da extensão, revise a documentação do pgAudit .

Requisito para privilégios de superusuário

No Cloud SQL, extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser . Ao criar uma nova instância do PostgreSQL, o usuário padrão do PostgreSQL é criado para você (embora seja necessário definir a senha do usuário). O usuário padrão do PostgreSQL faz parte da função cloudsqlsuperuser . Para obter mais informações, consulte Usuários do PostgreSQL .

Configurar auditoria para todas as operações de banco de dados na instância

Para configurar a auditoria para todos os bancos de dados em uma instância, você deve aplicar as configurações do pgAudit no nível do sistema. Os parâmetros de auditoria no nível do sistema podem ser definidos apenas como sinalizadores de banco de dados por meio do Google Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria de todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configurar operações específicas em todos os bancos de dados de instância

Para auditoria em todos os bancos de dados de instância, você pode usar oGoogle Cloud console ou o comando gcloud . Por exemplo, para ativar a auditoria apenas para operações de leitura e gravação na instância, você pode usar o seguinte comando gcloud . Este exemplo usa uma sintaxe baseada em lista para especificar vários valores:

  gcloud sql instances patch [INSTANCE_NAME] \
  --database-flags ^:^cloudsql.enable_pgaudit=on:pgaudit.log=read,write

O comando substitui os sinalizadores do banco de dados existentes.

Configurar auditoria para um banco de dados específico

Para configurar a auditoria para um banco de dados específico, defina os parâmetros pgAudit no nível do banco de dados. Por exemplo, o seguinte comando SQL pode ser usado para ativar a auditoria de leitura/gravação para um banco de dados chamado finance :

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Configurar auditoria para uma relação

A auditoria de um relacionamento é mais restrita do que a auditoria de um banco de dados específico.

Ao auditar um relacionamento, uma função de auditor exclusiva é atribuída ao parâmetro pgaudit.role . Qualquer objeto ou relacionamento que receba essa função é registrado.

Por exemplo, para configurar a auditoria para todas as consultas SELECT na relação salary no banco de dados employee , você pode usar estes comandos:

employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;

Você também pode auditar um subconjunto de colunas para uma determinada relação.

Por exemplo, o comando a seguir configura o registro de auditoria para ocorrer somente quando as colunas income e tax_status são acessadas a partir da relação salary :

employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;

Configurar auditoria para um usuário de banco de dados

Você pode ativar a auditoria para um usuário específico, configurando o parâmetro pgaudit.log em um nível de ROLE .

Por exemplo, os seguintes comandos SQL definem a auditoria para todas as operações de banco de dados executadas pelo usuário Alice :

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Dicas para gerenciamento de auditoria em nuvem SQL

Ao personalizar o comportamento da auditoria, lembre -se do seguinte:

  • Quando o sinalizador do banco de dados cloudsql.enable_pgaudit é desligado, o log de auditoria é interrompido imediatamente. No entanto, as configurações do PGAudit aplicadas (por exemplo, as configurações de parâmetros pgaudit.log são preservadas), a menos que sejam removidas explicitamente.
  • A instância do banco de dados é reiniciada sempre que o valor do sinalizador do banco de dados para cloudsql.enable_pgaudit for alterado.
  • Os usuários do banco de dados criados por meio de comandos CREATE ROLE explícitos não têm o privilégio de modificar as configurações de auditoria. Somente usuários de banco de dados criados através do Google Cloud O comando console e o comando gcloud podem modificar as configurações de auditoria.
  • Quando você habilita o log de auditoria da sessão e o log de auditoria de objetos, as instruções referentes a ambas são adicionadas aos logs. O log de sessão e o log de objetos não se cancelam ou se modificam.

Limitações da extensão do PGAUDIT na nuvem SQL para PostgreSQL

Os logs de auditoria são gravados temporariamente no disco de sua instância, ocupando o espaço do disco antes que os logs sejam enviados para o log de nuvem. Portanto, revise todas as informações a seguir antes de usar este recurso:

  • A taxa de ingestão de log é de 4 MB por segundo. Quando a carga da geração de logs excede a taxa de ingestão, o seguinte pode ocorrer:
    • Pode ocorrer um crescimento indesejado no uso de disco.
    • O espaço em disco pode ser esgotado.
  • Se você ativou esse recurso e executa muitas consultas que atendem aos seus critérios de auditoria, o uso do disco pode crescer muito rápido.
  • Antes de usar esse recurso, planeje::
  • Se o espaço do disco disponível estiver esgotado, os logs de auditoria para algumas consultas poderão ser perdidos.
,

Esta página descreve a auditoria do banco de dados usando a extensão do PGAUDIT , que ajuda você a configurar muitos dos logs geralmente necessários para cumprir as certificações governamentais, financeiras e ISO.

Para obter informações gerais sobre as extensões do PostgreSQL no Cloud SQL, consulte Extensões PostGresql .

Visão geral

A auditoria do banco de dados no Cloud SQL para PostgreSQL está disponível através da extensão PGAudit de código aberto.

Usando essa extensão, você pode gravar e rastrear seletivamente as operações SQL executadas em uma determinada instância de banco de dados. A extensão fornece recursos de auditoria para monitorar e gravar um subconjunto de operações selecionadas.

A extensão do PGAUDIT se aplica aos comandos e consultas SQL executadas. Por outro lado, os logs de auditoria em nuvem devem ser usados ​​para auditar operações administrativas e de manutenção realizadas em uma instância do SQL em nuvem.

Consulte a página Logs de auditoria para obter mais informações sobre o login de auditoria no Cloud SQL.

Configure a auditoria de banco de dados no Cloud SQL

As etapas para o registro de auditoria usando a extensão PGAUDIT incluem:

  1. Habilitando o sinalizador cloudsql.enable_pgaudit na nuvem SQL.
  2. Executando um comando para criar a extensão do PGAUDIT.
  3. Definir valores para o sinalizador pgaudit.log .

Depois de configurar a auditoria do banco de dados, você pode visualizar os logs e, se necessário, desativar o log.

Configure a auditoria

Esta seção descreve o básico da criação de operações de auditoria do banco de dados.

Sinalizador inicial para ativar a auditoria

No Cloud SQL, você usa sinalizadores de banco de dados para muitas operações, incluindo o ajuste dos parâmetros do PostgreSQL e a configuração de uma instância. O sinalizador cloudsql.enable_pgaudit permite a auditoria para uma determinada instância do banco de dados. Você pode alterar o valor da bandeira cloudsql.enable_pgaudit através do Google Cloud console ou através do comando gcloud .

Use as instruções padrão para sinalizadores para ativar o sinalizador cloudsql.enable_pgaudit , definindo o valor para on . Por exemplo, para usar o comando gcloud , especifique o seguinte, substituindo o nome da sua instância por [INSTANCE_NAME] :

gcloud sql instances patch [INSTANCE_NAME] --database-flags cloudsql.enable_pgaudit=on

O sinalizador cloudsql.enable_pgaudit está listado com os outros sinalizadores suportados e é específico para a nuvem SQL.

Execute o comando para criar a extensão do PGAUDIT

Depois de ativar o sinalizador do banco de dados, execute o comando CREATE EXTENSION usando um cliente PSQL compatível. O comando a seguir cria a extensão do PGAUDIT para todos os bancos de dados em uma instância da nuvem SQL:

CREATE EXTENSION pgaudit;

Defina valores para o sinalizador pgaudit.log

Use as instruções padrão para sinalizadores para definir valores para o sinalizador pgaudit.log .

Por exemplo, para ativar a auditoria para todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Definir outras configurações para o banco de dados

Para definir as configurações de auditoria para o banco de dados, siga os procedimentos na seção de log de auditoria do banco de dados personalizada .

Exibir logs de auditoria de banco de dados

Para visualizar logs de auditoria, ative os logs de auditoria de acesso a dados para o seu projeto. Os logs do PGAudit gerado para uma determinada instância são enviados para o log de nuvem como logs de auditoria de acesso a dados . Os usuários podem visualizar os logs do PGAudit gerado através do aplicativo Logs Explorer .

No aplicativo Logs Explorer , os logs do PGAUDIT podem ser visualizados selecionando o filtro de log em Cloudaudit.googleapis.com/data_access .

Como alternativa, você pode usar a seguinte consulta para mostrar todos os logs do PGAUDIT para um determinado projeto da Cloud SQL:

resource.type="cloudsql_database"
logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"

Formato de log para pgaudit

Cada entrada de log do PGAUDIT nos logs de auditoria de acesso a dados possui campos representando as informações coletadas para uma consulta.

Aqui está um exemplo:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "cloudsql.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

A seguir, são apresentadas descrições dos campos nos logs de auditoria de acesso a dados:

  • AuditClass . O tipo da instrução que é registrada. Valores possíveis são READ , WRITE , FUNCTION , ROLE , DDL , MISC e MISC_SET .
  • AuditType . SESSION ou OBJECT .
  • ChunkCount . O Chunking pode ocorrer nos dados fornecidos nos campos de parameter e statement . O campo chunkCount indica o número total de pedaços. Veja também a descrição do campo chunkIndex .
  • ChunkIndex . Especifica o número de índice dos pedaços de dados nos campos de parameter e statement (no contêiner request atual). O número inicial é 1 Veja também a descrição do campo chunkCount .
  • comando . Por exemplo, ALTER TABLE ou SELECT .
  • parâmetro . O campo chunkIndex pode determinar o conteúdo deste campo; Veja a descrição do campo chunkIndex . Se o valor para pgaudit.log_parameter estiver definido, o campo parameter poderá conter os parâmetros de instrução como dados citados do CSV. Se não houver parâmetros, esse campo contém [none] . Caso contrário, este campo contém [not logged] .
  • declaração . Declaração que foi executada no back -end. O campo chunkIndex pode determinar o conteúdo do campo statement ; Veja a descrição do campo chunkIndex .
  • declaração . ID de declaração exclusiva para esta sessão. Cada ID da declaração representa uma chamada de back -end. Os IDs de instrução são seqüenciais, mesmo que algumas instruções não sejam registradas.
  • SUBSTACENTIDIDIDO . ID seqüencial para cada sub-estatização dentro da declaração principal.

Alguns desses campos também são descritos na documentação do PGAUDIT .

Desative a auditoria

Para desativar a auditoria do banco de dados, defina o valor do sinalizador cloudsql.enable_pgaudit para off . O valor pode ser alterado através do Google Cloud console ou através do comando gcloud . Use as instruções padrão para sinalizadores para desativar o sinalizador cloudsql.enable_pgaudit .

Além disso, execute o comando DROP EXTENSION , usando um cliente PSQL compatível, para remover o estado de extensão:

DROP EXTENSION pgaudit;

Personalize o login de auditoria de banco de dados no Cloud SQL

Esta seção descreve maneiras de personalizar o comportamento de auditoria de uma instância de banco de dados.

Para obter recursos adicionais da extensão, revise a documentação do PGAUDIT .

Requisito para privilégios do superusuário

No Cloud SQL, as extensões só podem ser criadas por usuários que fazem parte da função cloudsqlsuperuser . Quando você cria uma nova instância do PostGresql, o usuário padrão do PostGresql é criado para você (embora você deva definir a senha do usuário). O usuário padrão do PostGresQL faz parte da função cloudsqlsuperuser . Para mais informações, consulte usuários do PostgreSQL .

Configure a auditoria para todas as operações de banco de dados na instância

Para configurar a auditoria para todos os bancos de dados em uma instância, você deve aplicar as configurações do PGAUDIT no nível do sistema. Os parâmetros de auditoria no nível do sistema podem ser definidos apenas como sinalizadores de banco de dados através do Google Cloud console ou comando gcloud . Por exemplo, para ativar a auditoria para todas as operações de banco de dados em uma instância, você pode usar o seguinte comando gcloud :

  gcloud sql instances patch [INSTANCE_NAME] --database-flags \
  cloudsql.enable_pgaudit=on,pgaudit.log=all

Configure operações específicas em todos os bancos de dados de instância

Para auditar em todos os bancos de dados de instância, você pode usar oGoogle Cloud console ou comando gcloud . Por exemplo, para ativar a auditoria para apenas operações de leitura e gravação na instância, você pode usar o seguinte comando gcloud . Este exemplo usa uma sintaxe baseada em lista para especificar vários valores:

  gcloud sql instances patch [INSTANCE_NAME] \
  --database-flags ^:^cloudsql.enable_pgaudit=on:pgaudit.log=read,write

O comando substitui os sinalizadores de banco de dados existentes.

Configure a auditoria para um banco de dados específico

Para configurar a auditoria para um banco de dados específico, defina os parâmetros do PGAUDIT no nível do banco de dados. Por exemplo, o seguinte comando SQL pode ser usado para ativar a auditoria de leitura/gravação para um banco de dados chamado finance :

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Configure a auditoria para uma relação

A auditoria para uma relação é mais estreita do que a auditoria para um banco de dados específico.

Quando você audita uma relação, uma função de auditor exclusiva é atribuída ao parâmetro pgaudit.role . Qualquer objeto ou relação concedida a essa função é registrada.

Por exemplo, para configurar a auditoria para todas as consultas SELECT sobre a relação salary no banco de dados employee , você pode usar estes comandos:

employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;

Você também pode auditar um subconjunto de colunas para uma determinada relação.

Por exemplo, o seguinte comando configura o registro de auditoria apenas quando a income das colunas e tax_status são acessados ​​a partir da relação salary :

employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;

Configure a auditoria para um usuário de banco de dados

Você pode ativar a auditoria para um usuário específico, configurando o parâmetro pgaudit.log em um nível de ROLE .

Por exemplo, os seguintes comandos SQL definem a auditoria para todas as operações de banco de dados executadas pelo usuário Alice :

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Dicas para gerenciamento de auditoria em nuvem SQL

Ao personalizar o comportamento da auditoria, lembre -se do seguinte:

  • Quando o sinalizador do banco de dados cloudsql.enable_pgaudit é desligado, o log de auditoria é interrompido imediatamente. No entanto, as configurações do PGAudit aplicadas (por exemplo, as configurações de parâmetros pgaudit.log são preservadas), a menos que sejam removidas explicitamente.
  • A instância do banco de dados é reiniciada sempre que o valor do sinalizador do banco de dados para cloudsql.enable_pgaudit for alterado.
  • Os usuários do banco de dados criados por meio de comandos CREATE ROLE explícitos não têm o privilégio de modificar as configurações de auditoria. Somente usuários de banco de dados criados através do Google Cloud O comando console e o comando gcloud podem modificar as configurações de auditoria.
  • Quando você habilita o log de auditoria da sessão e o log de auditoria de objetos, as instruções referentes a ambas são adicionadas aos logs. O log de sessão e o log de objetos não se cancelam ou se modificam.

Limitações da extensão do PGAUDIT na nuvem SQL para PostgreSQL

Os logs de auditoria são gravados temporariamente no disco de sua instância, ocupando o espaço do disco antes que os logs sejam enviados para o log de nuvem. Portanto, revise todas as informações a seguir antes de usar este recurso:

  • A taxa de ingestão de log é de 4 MB por segundo. Quando a carga da geração de logs excede a taxa de ingestão, o seguinte pode ocorrer:
    • Pode ocorrer um crescimento indesejado no uso de disco.
    • O espaço em disco pode ser esgotado.
  • Se você ativou esse recurso e executa muitas consultas que atendem aos seus critérios de auditoria, o uso do disco pode crescer muito rápido.
  • Antes de usar esse recurso, planeje::
  • Se o espaço do disco disponível estiver esgotado, os logs de auditoria para algumas consultas poderão ser perdidos.