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