Configure o comportamento de registo

Para configurar o comportamento de registo do pgAudit, defina a flag pgaudit.log ou a flag pgaudit.role:

  • Defina pgaudit.log para ativar e configurar o registo de sessões. Pode definir esta flag numa instância, numa base de dados ou numa função para definir o âmbito das operações que o pgAudit regista. Define a flag para um valor que define o tipo de operações que o pgAudit regista.

  • Defina pgaudit.role para ativar e configurar o registo de objetos, que regista declarações que afetam relações específicas. Define esta flag para o nome de uma função e, em seguida, concede acesso à declaração a objetos específicos que quer registar. O acesso aos extratos inclui SELECT, INSERT, UPDATE, and DELETE. O pgAudit regista todas as operações que correspondem à combinação de acesso e objeto executada por qualquer utilizador.

As secções seguintes fornecem exemplos que mostram as opções para definir o comportamento de registo de auditoria do pgAudit.

Para ver capacidades adicionais da extensão, reveja a documentação do pgAudit.

Configure o registo de auditoria de sessões para todas as bases de dados numa instância

Para configurar a auditoria para todas as bases de dados numa instância, defina a flag pgaudit.log ao nível da instância.

Por exemplo:

  • Para ativar a auditoria de todas as operações em todas as bases de dados numa 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 escrita em todas as bases de dados numa 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
    

Tenha em atenção a utilização da sintaxe de delimitador alternativo, que lhe permite usar carateres de vírgula num valor de indicador.

Para obter informações sobre a configuração de flags da base de dados, consulte o artigo Configure flags da base de dados.

Configure o registo de auditoria de sessões para uma base de dados específica

Pode configurar a auditoria para uma base de dados específica definindo a flag pgaudit.log ao nível da base de dados.

Por exemplo, para ativar a auditoria de leitura/escrita para uma base de dados, finance:

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

Configure o registo de auditoria de sessões para um único utilizador

Pode ativar a auditoria para um utilizador específico definindo o pgaudit.log ao nível da função.

Por exemplo, para definir a auditoria para todas as operações de base de dados executadas pelo utilizador Alice:

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

Configure o registo de auditoria de objetos

A auditoria de uma relação é mais restrita do que a auditoria de uma base de dados específica. Quando audita uma relação, o sistema atribui uma função de auditor exclusiva ao parâmetro pgaudit.role. Esta operação regista qualquer objeto ou relação que seja concedido a esta função.

Por exemplo:

  • Para configurar a auditoria de todas as consultas SELECT na relação de salários na base 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 pode auditar um subconjunto de colunas para uma determinada relação.

Por exemplo:

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