O PostgreSQL é um sistema de gerenciamento de banco de dados objeto-relacional de código aberto. É conhecido por sua confiabilidade, escalabilidade e ampla funcionalidade, incluindo suporte a JSON, busca em texto completo, procedimentos armazenados, extensões e muito mais.
Com os bancos de dados PostgreSQL gerenciados da Hostman, você obtém um cluster PostgreSQL totalmente gerenciado, sem configuração manual — tudo é provisionado automaticamente.
Ao criar um cluster, você pode selecionar a versão do PostgreSQL: 14, 15, 16, 17, 18.
Ao criar um novo cluster, um banco de dados chamado default_db é adicionado automaticamente.
Você pode adicionar bancos de dados adicionais:
Para importar um banco de dados:
O que será transferido:
O que não será transferido:
Você precisará criar os usuários e instalar as extensões necessárias manualmente no novo banco de dados.
No painel de controle, você pode gerenciar usuários PostgreSQL e seus privilégios.
Para atualizar os privilégios de um usuário existente:
|
Privilégio |
Descrição |
|
|
Ler dados de tabelas, visualizações e sequências |
|
|
Adicionar novas linhas |
|
|
Modificar linhas existentes |
|
|
Excluir linhas |
|
|
Remover rapidamente todas as linhas de uma tabela |
|
|
Criar novos objetos (tabelas, views, funções etc.) |
|
|
Usar uma tabela como chave estrangeira |
|
|
Criar e executar gatilhos |
|
|
Criar tabelas temporárias |
|
|
Criar bancos de dados |
|
|
Criar funções (roles) |
Você pode alterar a senha do usuário:
As extensões do PostgreSQL permitem ampliar a funcionalidade do banco de dados adicionando recursos extras para tarefas específicas. Para mais informações, consulte a documentação oficial do PostgreSQL.
Para ativar ou desativar extensões:
|
Extensão |
Descrição |
|
|
Verificação de integridade de índices e tabelas |
|
|
Tipo de texto sem distinção entre maiúsculas/minúsculas |
|
|
Coleta estatísticas de execução de consultas SQL |
|
|
Busca e comparação aproximada de strings |
|
|
Funções criptográficas |
|
|
Dados geográficos e geométricos (GIS) |
|
|
Modelos topológicos para dados espaciais |
|
|
Geração de UUIDs |
|
|
Tipo vetorial para busca por similaridade |
|
|
Agendador de tarefas |
Você pode alterar as configurações do banco de dados para otimizar o desempenho.
Por padrão, o banco é criado com parâmetros adequados para a maioria dos cenários e compatíveis com a configuração selecionada. No entanto, se o seu projeto exigir ajustes específicos, você pode modificá-los conforme necessário.
Altere os parâmetros com cuidado. Configurações incorretas podem afetar negativamente a estabilidade e o desempenho do banco de dados.
|
Parâmetro |
Valores |
Padrão |
|
|
0–100 |
0.1 |
|
|
1–262143 |
3 |
|
|
1–2147483 |
60 |
|
|
0–100 |
0.2 |
|
|
0–100 |
0.2 |
|
|
-1–2147483647 |
-1 |
|
|
10–10000 |
200 |
|
|
0–1073741823 |
100 |
|
|
1–2147483647 |
1000 |
|
|
64–2147483647 |
4096 |
|
|
0–2147483647 |
0 |
|
|
1–2147483647 |
8 |
|
|
0–2147483647 |
0 |
|
|
0–262143 |
0 |
|
|
1–262143 |
200 |
|
|
16–1073741823 |
31232 |
|
|
-1–262143 |
2048 |
|
|
100–1073741823 |
1024 |
|
|
64–2147483647 |
436 |
|
|
— |
read committed |
|
|
1–2147483647 |
524288 |
|
|
2–2147483647 |
1024 |
|
|
2–2147483647 |
80 |
|
|
replica / logical |
replica |
|
|
5–262143 |
10 |
|
|
5–262143 |
10 |
|
|
0–262143 |
8 |
|
|
0–262143 |
4 |
|
|
0–1024 |
2 |
|
|
0–1024 |
8 |
|
|
0–1024 |
2 |
|
|
On/Off |
On |
|
|
0–256 |
0 |
|
|
On/Off/safe_encoding |
safe_encoding |
|
|
0–256 |
64 |
|
|
1–10 |
2 |
|
|
On/Off |
Off |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
Off |
|
|
On/Off |
Off |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
On |
|
|
On/Off |
Off |
|
|
1–2147483647 |
8 |
|
|
0–2147483647 |
900000 |
|
|
On/Off |
On |
|
|
auto / force custom plan / force generic plan |
auto |
|
|
On/Off |
Off |
|
|
On/Off |
On |
|
|
0–2147483647 |
0 |
|
|
-13:59–+14:00 |
— |
|
|
On/Off |
Off |
|
|
1–2147483647 |
64 |
|
|
-1–10000 |
200 |
|
|
30–86400 |
300 |
|
|
0–1 |
0.5 |
|
|
On/Off/pglz/lz4/zstd |
Off |
|
|
0–10 |
4 |
|
|
0–1000 |
1 |
|
|
On/Off |
Off |
|
|
-1–2147483647 |
-1 |
|
|
On/Off |
Off |
|
|
1024–2147483647 |
33554432 |
Você pode restaurar facilmente as configurações padrão:
Atenção: os parâmetros serão redefinidos imediatamente, sem confirmação adicional.
Você pode se conectar usando o Adminer ou via terminal. O acesso pelo Adminer está disponível apenas se o cluster tiver um IP público.

Instale o cliente PostgreSQL:
Ubuntu/Debian
sudo apt install postgresql-client
Arch
sudo pacman -S postgresql-libs
Fedora
sudo dnf install postgresql
Você pode se conectar:
O comando de conexão pode ser copiado:
na aba Painel

ou na aba Conexão

Um usuário com o privilégio CREATE ROLE pode:
CREATE USER)CREATE ROLE)GRANT ... TO ...)Um usuário é uma função (role) que tem permissão para se conectar ao banco de dados. Essa função pode acessar o banco usando um nome de usuário e senha.
Para criar um usuário com senha, execute:
CREATE USER someuser WITH PASSWORD 'password';
Aqui, someuser é o nome do usuário e password é a senha.
O novo usuário aparecerá na aba Usuários logo após a criação.
Em vez de conceder permissões diretamente a cada usuário, é recomendado criar funções com os privilégios necessários e depois atribuir os usuários a essas funções.
Vamos criar duas funções: uma com acesso somente leitura e outra com acesso de leitura e escrita.
Função somente leitura:
CREATE ROLE app_reader;
Função leitura/escrita:
CREATE ROLE app_writer;
Atribuindo uma função a um usuário:
GRANT app_writer TO someuser;
Por padrão, todas as tabelas PostgreSQL são criadas no esquema public. Para conceder permissões, crie um novo esquema:
CREATE SCHEMA app_data;
Criando tabelas no novo esquema:
CREATE TABLE app_data.users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
CREATE TABLE app_data.orders (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES app_data.users(id),
order_date TIMESTAMP DEFAULT now()
);
Concedendo acesso ao esquema para as funções criadas anteriormente:
GRANT USAGE ON SCHEMA app_data TO app_reader;
GRANT USAGE ON SCHEMA app_data TO app_writer;
Concedendo permissão para criar objetos no esquema:
GRANT CREATE ON SCHEMA app_data TO app_writer;
Concedendo acesso de leitura a todas as tabelas existentes no esquema:
GRANT SELECT ON ALL TABLES IN SCHEMA app_data TO app_reader;
Concedendo acesso de leitura e escrita:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app_data TO app_writer;
Definindo permissões padrão para novas tabelas:
ALTER DEFAULT PRIVILEGES IN SCHEMA app_data
GRANT SELECT ON TABLES TO app_reader;
ALTER DEFAULT PRIVILEGES IN SCHEMA app_data
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_writer;
E permissões padrão para novas sequências:
ALTER DEFAULT PRIVILEGES IN SCHEMA app_data
GRANT USAGE, SELECT ON SEQUENCES TO app_writer;
Para criar um dump, execute:
pg_dump -x 'postgresql://<user>:<password>@<host>:5432/<db>' | gzip > default_db.sql.gz
A opção -x (--no-privileges) exclui os comandos GRANT e REVOKE do dump, pois o gerenciamento de permissões é feito pelo painel de controle.
Sem essa opção, podem ocorrer erros ao carregar o dump, mas eles não afetam a restauração dos dados.
Para carregar um dump, execute:
zcat default_db.sql.gz | psql 'postgresql://<user>:<password>@<host>:5432/<db>'
Esse comando descompacta o dump e o envia ao cliente PostgreSQL para execução.
O plano básico de banco de dados (1 CPU / 1 GB de RAM / 20 GB NVMe) possui as seguintes limitações técnicas:
shared_bufferseffective_cache_sizemaintenance_work_memmax_connections