Para configurar o comportamento de geração de registros do pgAudit, defina a flag pgaudit.log
ou pgaudit.role
:
Defina
pgaudit.log
para ativar e configurar o registro de sessões. É 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. Defina a flag com um valor que defina o tipo de operações registradas pelo pgAudit.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 à instrução a objetos específicos que você quer registrar. O acesso ao extrato incluiSELECT, INSERT, UPDATE, and DELETE
. O pgAudit registra todas as operações que correspondem à combinação de acesso e objeto executados 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 de 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 de 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 informações sobre como configurar flags de banco de dados, consulte Configurar flags de 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, finanças:
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 pela usuária 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
concedido 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
etax_status
são acessadas da relação de salário:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;