Cota de recurso de consulta para contas PostgreSQL

Oct 19 2020

Nas versões mais recentes (12, 13) do PostgreSQL, há algum suporte de limitação no nível da conta do usuário, para limitar a quantidade de dados que qualquer consulta pode produzir e / ou quanto tempo + memória pode consumir nessa conta de usuário?

Eu quero limitar contas de usuário específicas para permitir uma certa quantidade de dados e / ou tempo para consumir dentro do servidor, antes de erro com "Quota de consulta excedida" ou algo parecido.

Exemplo

Desejo configurar a conta do usuário guestpara produzir falha de "cota excedida" para qualquer consulta que retorne mais de 10 kb de dados ou leve mais de 10 segundos para ser executada.

Respostas

1 LaurenzAlbe Oct 19 2020 at 20:57

Não há suporte para cotas de recursos no PostgreSQL.

Sua melhor aposta é statement_timeout:

ALTER ROLE baduser SET statement_timeout = '10s';

Você não pode limitar o número de linhas retornadas, mas talvez statement_timeoutseja bom o suficiente.