Skip to main content

Regras de Acesso do usuário: bancodigital_bi

📄 Documento de Orientação Técnica – Implementação de Restrições para o Usuário bancodigital_bi​

Objetivo:

Este documento tem como finalidade apresentar as alterações que serão implementadas no banco de dados PostgreSQL relacionadas ao usuário bancodigital_bi, visando reforçar a segurança, melhorar a estabilidade e reduzir impactos operacionais no ambiente transacional.


🔧 Restrições a serem aplicadas​

As seguintes configurações serão ajustadas:

ALTER ROLE bancodigitalbi SET statement_timeout = '30s';
ALTER ROLE bancodigitalbi SET idle_in_transaction_session_timeout = '30s';
ALTER ROLE bancodigitalbi CONNECTION LIMIT 4;

📌 Descrição e Importância de Cada Parâmetro​

1. statement_timeout = '30s'​

  • O que faz: Define um limite máximo de 30 segundos para execução de qualquer instrução SQL.
  • Importância: Impede que consultas BI (geralmente analíticas e de longa duração) rodem indefinidamente, consumindo recursos do banco e impactando o desempenho do ambiente transacional.
  • Benefício: Evita travamentos e lentidão causadas por queries mal otimizadas ou acidentais.

2. idle_in_transaction_session_timeout = '30s'​

  • O que faz: Encerra automaticamente conexões que estejam ociosas dentro de uma transação por mais de 60 segundos.
  • Importância: Conexões ociosas em transações abertas podem gerar locks em tabelas ou bloquear índices, prejudicando a operação do banco.
  • Benefício: Libera recursos automaticamente e previne bloqueios por descuido em ferramentas de BI ou conexões mal gerenciadas.

3. CONNECTION LIMIT 4​

  • O que faz: Restringe o número de conexões simultâneas permitidas ao usuário bancodigital_bi para no máximo 4 sessões ativas ao mesmo tempo.
  • Importância: Limita o impacto potencial que esse usuário pode ter na infraestrutura do banco ao abrir múltiplas sessões concorrentes.
  • Benefício: Garante que o ambiente de BI não concorra excessivamente com o ambiente transacional por conexões e recursos.

4. default_transaction_read_only = on​

  • O que faz:

    Define se as transações iniciadas automaticamente por um usuário ou aplicação terão o modo somente leitura (read-only) ativado por padrão.

    Quando configurado como ON, impede comandos que modifiquem dados, como INSERT, UPDATE, DELETE, ou CREATE.

  • Importância:

    Ajuda a proteger dados sensíveis ou ambientes críticos (como bases de dados replicadas ou de BI) contra alterações não intencionais, especialmente quando não há necessidade de escrita.

  • Benefício prático:

    Garante que sessões iniciadas por usuários que apenas realizam consultas (por exemplo, analistas de BI ou dashboards) não afetem a integridade dos dados, além de otimizar o uso do banco, pois operações somente leitura geralmente têm menos sobrecarga.


⚠️ Justificativa Técnica e de Segurança​

As mudanças estão sendo adotadas por razões de segurança e governança operacional, com o objetivo de:

  • Minimizar riscos de interferência do ambiente BI no banco transacional.
  • Reduzir uso abusivo de recursos, especialmente CPU, memória e locks.
  • Aumentar a resiliência e estabilidade do banco de dados.
  • Garantir que ferramentas de BI operem de forma controlada, sem comprometer o desempenho geral do sistema.

✅ Considerações Finais​

Essas configurações foram definidas com base em boas práticas de administração de banco de dados PostgreSQL, alinhadas com os objetivos de performance, segurança e disponibilidade.

Caso haja necessidade de flexibilização futura dos limites, os ajustes poderão ser revisados conforme análise de impacto e comportamento real da carga de trabalho.