15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
31.10.2024
1 +1

Como Gerenciar Bancos de Dados em PostgreSQL: Um Guia Completo para Usuários de VPS Linux

PostgreSQL (comumente chamado Postgres) é um dos sistemas de gerenciamento de banco de dados relacional de código aberto mais poderosos e ricos em recursos disponíveis hoje. Confiável por startups e equipes empresariais, ele se destaca no tratamento de consultas complexas, grandes conjuntos de dados e arquiteturas de aplicativos escaláveis. Se você está construindo uma plataforma SaaS, uma loja de comércio eletrônico ou um backend de API intensivo em dados, PostgreSQL oferece a confiabilidade e o desempenho que seu projeto exige.

Executar PostgreSQL em um ambiente de VPS Hosting de alto desempenho — com armazenamento NVMe SSD, acesso root completo e proteção DDoS integrada — oferece controle total sobre sua infraestrutura de banco de dados sem a sobrecarga de soluções em nuvem gerenciadas. Este guia o orienta em todas as tarefas essenciais de gerenciamento do PostgreSQL, desde o acesso inicial e criação de banco de dados até permissões de usuário, backups e endurecimento de segurança.

Pré-requisitos

Antes de prosseguir, certifique-se de que você tem:

  • Um VPS Linux executando Ubuntu, Debian ou CentOS com PostgreSQL instalado
  • Acesso root ou sudo ao seu servidor
  • Familiaridade básica com a linha de comando Linux

Se você ainda não configurou seu ambiente de servidor, os Painéis de Controle VPS da AlexHost tornam simples configurar sua pilha rapidamente.

1. Acessando a Interface de Linha de Comando do PostgreSQL

Todas as tarefas de gerenciamento do PostgreSQL começam na interface de linha de comando (CLI), também conhecida como psql. Por padrão, PostgreSQL cria um usuário do sistema chamado postgres durante a instalação, e essa conta é usada para autenticar com o mecanismo de banco de dados.

Passo 1: Mudar para o Usuário do Sistema PostgreSQL

sudo -i -u postgres

Passo 2: Iniciar a CLI do PostgreSQL

psql

Uma vez conectado, você verá o prompt interativo:

postgres=#

Isso confirma que você está dentro do ambiente PostgreSQL e pronto para executar comandos SQL e meta-comandos.

> Dica Profissional: Você também pode se conectar diretamente sem mudar de usuário executando sudo -u postgres psql da sua sessão de shell regular.

2. Criando um Novo Banco de Dados

Bancos de dados são os contêineres de nível superior para todas as suas tabelas, índices e dados armazenados. Use a instrução CREATE DATABASE para provisionar um novo banco de dados.

Sintaxe

CREATE DATABASE database_name;

Exemplo

CREATE DATABASE my_database;

Isso cria um banco de dados chamado my_database pertencente à função PostgreSQL ativa no momento.

Verificar se o Banco de Dados Foi Criado

Use o meta-comando l para listar todos os bancos de dados no servidor:

l

Você verá uma tabela mostrando nomes de bancos de dados, proprietários, codificações e privilégios de acesso.

3. Criando e Gerenciando Usuários de Banco de Dados

O gerenciamento adequado de usuários é crítico para a segurança do banco de dados. Em vez de conceder a todos os aplicativos acesso sob a conta de superusuário postgres, você deve criar usuários dedicados com permissões limitadas.

Criar um Novo Usuário

CREATE USER username WITH PASSWORD 'your_secure_password';

Exemplo

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Conceder Acesso Completo a um Banco de Dados Específico

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Exemplo

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Isso concede ao dbuser acesso completo de leitura e escrita ao my_database, incluindo a capacidade de criar e descartar tabelas.

Listar Todos os Usuários

Para visualizar todas as funções e usuários existentes:

du

4. Conectando a um Banco de Dados

Uma vez que um banco de dados existe, você precisa se conectar a ele antes de poder criar tabelas ou executar consultas contra ele.

Mudar para um Banco de Dados

c my_database

O prompt será atualizado para refletir o banco de dados ativo:

my_database=#

Você agora está operando dentro do my_database e pode executar todas as instruções DDL e DML contra ele.

5. Criando e Gerenciando Tabelas

Tabelas são a unidade estrutural central de qualquer banco de dados relacional. Cada tabela define um esquema — um conjunto de colunas nomeadas com tipos de dados e restrições específicas.

Criar uma Tabela

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Exemplo Prático: Tabela de Registros de Funcionários

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Aqui, SERIAL incrementa automaticamente o employee_id em cada nova linha, e NOT NULL força que cada funcionário tenha um nome.

6. Inserindo, Consultando, Atualizando e Deletando Dados

Inserir um Registro

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Consultar Todos os Registros

SELECT * FROM employees;

Filtrar Resultados com uma Cláusula WHERE

SELECT name, salary FROM employees WHERE department = 'Engineering';

Atualizar um Registro Existente

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Deletar um Registro Específico

DELETE FROM employees
WHERE name = 'Jane Smith';

> Melhor Prática: Sempre use uma cláusula WHERE com instruções UPDATE e DELETE. Omiti-la afetará todas as linhas da tabela.

7. Gerenciando Acesso ao Banco de Dados e Segurança

Segurança é uma preocupação de primeira classe em qualquer implantação PostgreSQL em produção. O princípio do menor privilégio — conceder aos usuários apenas as permissões que realmente precisam — reduz drasticamente sua superfície de ataque.

Revogar Todos os Privilégios de um Usuário

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Conceder Acesso Somente Leitura a uma Tabela Específica

GRANT SELECT ON TABLE employees TO dbuser;

Isso permite que dbuser consulte a tabela employees mas impede qualquer inserção, atualização ou exclusão.

Conceder Permissões DML Específicas

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Recomendações de Segurança Adicionais

  • Use senhas fortes e únicas para cada usuário de banco de dados
  • Desabilite o acesso remoto para o superusuário postgres em pg_hba.conf
  • Ative conexões SSL para criptografar dados em trânsito — combine isso com um Certificado SSL confiável no seu servidor
  • Audite regularmente os privilégios dos usuários usando du e dp
  • Mantenha PostgreSQL atualizado para corrigir vulnerabilidades conhecidas

8. Fazendo Backup e Restaurando Bancos de Dados

Backups regulares são inegociáveis para qualquer banco de dados em produção. PostgreSQL fornece os utilitários pg_dump e psql para fluxos de trabalho diretos de backup e restauração.

Fazer Backup de um Banco de Dados em um Arquivo SQL

pg_dump my_database > my_database_backup.sql

Isso exporta o esquema e dados do banco de dados inteiro como um script SQL em texto simples.

Fazer Backup em Formato Comprimido (Recomendado para Bancos de Dados Grandes)

pg_dump -Fc my_database > my_database_backup.dump

O formato personalizado (-Fc) produz um arquivo binário comprimido e suporta restauração paralela.

Restaurar um Banco de Dados a partir de um Backup SQL

psql my_database < my_database_backup.sql

Restaurar a partir de um Backup em Formato Personalizado

pg_restore -d my_database my_database_backup.dump

Automatizar Backups com um Trabalho Cron

Agende backups diários adicionando uma entrada cron:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Isso executa um backup todos os dias às 2:00 AM e adiciona a data ao nome do arquivo para fácil versionamento.

9. Descartando Tabelas e Bancos de Dados

Quando uma tabela ou banco de dados não é mais necessário, use o comando DROP para removê-lo permanentemente.

Descartar uma Tabela

DROP TABLE table_name;

Exemplo

DROP TABLE employees;

Descartar uma Tabela Apenas se Existir (Sintaxe Mais Segura)

DROP TABLE IF EXISTS employees;

Descartar um Banco de Dados

Você deve desconectar do banco de dados de destino antes de descartá-lo. Mude primeiro para o banco de dados padrão postgres:

c postgres

Depois descarte o alvo:

DROP DATABASE my_database;

> Aviso: DROP DATABASE é irreversível. Sempre verifique se você tem um backup atual antes de executar este comando em produção.

10. Referência de Meta-Comandos Úteis do PostgreSQL

A CLI psql inclui um conjunto rico de meta-comandos (prefixados com ) que simplificam a navegação e inspeção:

ComandoDescrição
lListar todos os bancos de dados
c dbnameConectar a um banco de dados
dtListar todas as tabelas no banco de dados atual
d table_nameDescrever o esquema de uma tabela
duListar todos os usuários e funções
dpMostrar privilégios de acesso à tabela
timingAlternar exibição de tempo de execução de consulta
qSair da CLI do PostgreSQL

11. Saindo da CLI do PostgreSQL

Quando terminar sua sessão, saia corretamente usando:

q

Isso o retorna ao prompt do shell Linux.

Por que Executar PostgreSQL em um VPS AlexHost?

Desempenho e controle são as duas maiores razões para auto-hospedar PostgreSQL em um VPS dedicado em vez de confiar em um serviço de banco de dados compartilhado ou gerenciado. Com a infraestrutura da Al

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar