Como configurar o PostgreSQL para um desenvolvimento seguro e eficiente
Configurar um ambiente de banco de dados robusto é um passo crucial para qualquer projeto de desenvolvimento. O PostgreSQL, conhecido por sua confiabilidade e extensibilidade, oferece diversas ferramentas para garantir a segurança e o bom desempenho dos seus dados.
Este guia prático, baseado em informações detalhadas sobre a configuração do PostgreSQL, irá guiá-lo através de cada etapa, desde a instalação até a gestão de usuários e permissões, garantindo que você siga as melhores práticas para proteger seu banco de dados.
Aprender a gerenciar roles e privilégios de forma adequada é essencial para implementar o Princípio do Menor Privilégio, um conceito fundamental na segurança da informação, conforme destacado por organizações como a OWASP. Vamos detalhar como realizar essas configurações de maneira simples e eficaz.
Instalação e Verificação do PostgreSQL
Para iniciar, a instalação do PostgreSQL é realizada através do gerenciador de pacotes da sua distribuição Linux. No caso do Ubuntu 22.04, os comandos são:
sudo apt update
sudo apt install postgresql postgresql-contrib libpq-dev
Após a instalação, é importante verificar se o serviço está em execução. Utilize:
sudo service postgresql status
Caso o serviço não esteja ativo, inicie-o com:
sudo service postgresql start
A porta padrão do PostgreSQL é a 5432. Para confirmar em qual porta o serviço está escutando, use:
sudo ss -lntp | grep 5432
A saída esperada confirmará que o PostgreSQL está escutando na porta 5432 em 127.0.0.1.
Configurando Roles e Privilégios no PostgreSQL
Para acessar o terminal do PostgreSQL, utilize o comando:
sudo -u postgres psql
Inicialmente, o sistema possui apenas o usuário `postgres` com todos os privilégios (superuser). Você pode listar os roles existentes com o comando du.
Embora não seja estritamente necessário criar um novo usuário para fins de estudo, é uma **excelente prática de segurança**. Utilizar o usuário `postgres` diretamente em aplicações pode violar o Princípio do Menor Privilégio, aumentando o risco de vulnerabilidades como SQL Injection. Por isso, mesmo em ambientes de desenvolvimento, recomenda-se criar usuários com permissões limitadas.
Para criar um novo usuário com permissões de login e a capacidade de criar bancos de dados e outros roles, utilize:
CREATE ROLE user_teste WITH LOGIN PASSWORD ‘password’ CREATEDB CREATEROLE;
Em seguida, crie um banco de dados e defina o novo usuário como seu dono:
CREATE DATABASE users_db OWNER user_teste;
Ser o dono de um banco de dados concede ao usuário controle significativo sobre ele, mas é importante notar que as permissões no PostgreSQL operam em níveis hierárquicos: Servidor, Banco de Dados, Schema e Tabelas. Ser dono do banco não garante automaticamente controle total sobre todos os objetos dentro dele.
Gerenciando Permissões em Schemas
Para se conectar ao banco de dados recém-criado, utilize o comando no terminal do PostgreSQL:
c users_db
Após se conectar, você pode conceder permissões no schema `public`, que é criado por padrão no PostgreSQL. Para permitir que o `user_teste` tenha acesso total ao schema `public`, execute:
GRANT ALL ON SCHEMA public TO user_teste;
Um schema funciona como uma pasta lógica dentro do banco de dados, organizando objetos como tabelas, views e functions. Conceder permissões no schema `public` permite que o `user_teste` possa criar, alterar e excluir objetos dentro dele, como tabelas e outras estruturas de dados.
Ao seguir estes passos, você terá configurado um ambiente básico de PostgreSQL, aplicando as melhores práticas de segurança ao evitar o uso direto do usuário superuser em aplicações. Isso torna seu ambiente de desenvolvimento mais seguro e alinhado com cenários de produção.

Café Codificado é um portal dinâmico e confiável criado especialmente para desenvolvedores. Nosso foco é entregar:
Dicas práticas para programação, produtividade, frameworks, testes, DevOps e muito mais;
Notícias atualizadas, acompanhando tendências e lançamentos do mundo da tecnologia, compiladas com relevância e sem jargões desnecessários.
O que você encontra aqui:
Artigos objetivos e comandáveis — Tutoriais, tutoriais passo-a-passo e dicas que vão direto ao ponto.
Cobertura das tecnologias que estão em alta — do universo da IA, computação em nuvem e segurança à engenharia de software e criatividade em código.
Conteúdo para todos os níveis — de iniciantes buscando praticidade, a profissionais em busca de insights estratégicos e aperfeiçoamento.
Comunidade ativa — textos humanizados, perguntinhas instigantes e espaço para você contribuir com reflexões e comentários.