Configurar o comportamento de geração de registros

Para configurar o comportamento de geração de registros do pgAudit, defina a sinalização pgaudit.log ou pgaudit.role:

  • Defina pgaudit.log para ativar e configurar o registro de sessão. É possível definir essa flag em uma instância, um banco de dados ou uma função para definir o escopo das operações registradas pelo pgAudit. Você define a flag como um valor que define o tipo de operações que o pgAudit registra.

  • Defina pgaudit.role para ativar e configurar o registro de objetos, que registra instruções que afetam relações específicas. Defina essa flag como o nome de uma função e conceda acesso a instruções a objetos específicos que você quer registrar. O acesso à instrução inclui SELECT, INSERT, UPDATE, and DELETE. O pgAudit registra todas as operações que correspondem à combinação de acesso e objeto executado por qualquer usuário.

As seções a seguir fornecem exemplos que mostram as opções para definir o comportamento de geração de registros do pgAudit.

Para ver outros recursos da extensão, leia a documentação pgAudit (em inglês).

Configurar o registro de auditoria de sessão para todos os bancos de dados em uma instância

Para configurar a auditoria de todos os bancos de dados em uma instância, defina a flag pgaudit.log no nível da instância.

Exemplo:

  • Para ativar a auditoria de todas as operações em todos os bancos de dados em uma instância:
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • Para ativar a auditoria apenas para operações de leitura e gravação em todos os bancos de dados em uma instância:
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

Observe o uso da sintaxe de delimitador alternativo, que permite usar caracteres de vírgula em um valor de flag.

Para mais informações sobre como configurar flags do banco de dados, consulte Configurar flags do banco de dados.

Configurar a geração de registros de auditoria de sessão para um banco de dados específico

É possível configurar a auditoria de um banco de dados específico definindo a flag pgaudit.log no nível do banco de dados.

Por exemplo, para ativar a auditoria de leitura/gravação de um banco de dados, o financeiro:

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

Configurar o registro de auditoria de sessão para um único usuário

É possível ativar a auditoria de um usuário específico definindo o pgaudit.log por nível de função.

Por exemplo, para definir a auditoria de todas as operações de banco de dados executadas pelo usuário, Alice:

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

Configurar o registro de auditoria de objetos

A auditoria de uma relação é mais restrita do que a auditoria de um banco de dados específico. Quando você faz auditoria de uma relação, o sistema atribui um papel de auditor exclusivo ao parâmetro pgaudit.role. Essa operação registra qualquer objeto ou relação concedida a esse papel.

Exemplo:

  • Para configurar a auditoria de todas as consultas SELECT na relação de salário no banco de dados de funcionários:
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

Também é possível auditar um subconjunto de colunas para uma determinada relação.

Exemplo:

  • Para configurar a geração de registros de auditoria que ocorre somente quando as colunas income e tax_status são acessadas a partir da relação de salário:
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;