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 incluiSELECT, 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
etax_status
são acessadas a partir da relação de salário:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;