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_bipara 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, comoINSERT,UPDATE,DELETE, ouCREATE. -
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.