Num VPS com PostgreSQL já instalado, entre como o usuário do sistema postgres com sudo -u postgres psql, e crie o usuário e a base com dois comandos: CREATE USER ... e CREATE DATABASE ... OWNER .... Depois ligue-se com psql -h 127.0.0.1 -U usuário -d base. Pressupõe um VPS com acesso root, de preferência com Ubuntu 22.04 LTS, e a instalação é sua. Se ainda não instalou, comece por instalar o PostgreSQL.
Passo a passo
| 1 |
Entre no PostgreSQL: sudo -u postgres psql. O prompt passa a postgres=#.
|
|
| 2 |
Crie o usuário, com uma senha forte (o gerador de senhas serve):CREATE USER loja WITH PASSWORD 'palavra-passe-forte';
|
|
| 3 |
Crie a base e entregue-a a esse usuário:CREATE DATABASE loja OWNER loja;
|
|
| 4 |
Confira com \l (lista as bases) e \du (lista os usuários). Saia com \q.
|
|
| 5 |
Ligue-se como o novo usuário, por rede local:psql -h 127.0.0.1 -U loja -d lojaO psql pede a senha.
|
|
| 6 |
Na aplicação, use o servidor 127.0.0.1, a porta 5432, e os três valores: base, usuário e senha.
|
|
Comandos que vai usar muitas vezes
| Comando |
O que faz |
\l |
Lista os bancos de dados. |
\c nome |
Passa a trabalhar em outra base. |
\dt |
Lista as tabelas da base atual. |
\du |
Lista usuários (papéis). |
ALTER USER loja WITH PASSWORD 'nova'; |
Muda a senha. |
DROP DATABASE loja; |
Apaga a base. Não tem volta. |
«Peer authentication failed» aparece quando tenta psql -U loja sem o -h 127.0.0.1. Sem o -h, o psql liga por um arquivo local e espera que o usuário do sistema tenha o mesmo nome. Com o -h 127.0.0.1 pede a senha, que é o que quer. Outra armadilha: os comandos SQL acabam em ponto e vírgula. Sem ele, o psql fica à espera e parece bloqueado.
|
Dar acesso só de leitura a outro usuário
Para um segundo usuário que só consulta (um painel de relatórios, por exemplo), crie-o e, dentro da base (\c loja), dê-lhe o essencial: GRANT CONNECT ON DATABASE loja TO leitor; e GRANT SELECT ON ALL TABLES IN SCHEMA public TO leitor;. O primeiro deixa-o entrar, o segundo deixa-o ler as tabelas que já existem. As tabelas criadas mais tarde não entram automaticamente: é preciso repetir o comando ou definir privilégios por padrão. Para retirar um acesso, existe o REVOKE, que faz o contrário de GRANT.
Não dê à aplicação o usuário postgres. Esse é o administrador de tudo. Um usuário por aplicação, dono só da sua base, limita o estrago se algo dar errado. Para guardar a senha fora do comando, o psql lê-a de um arquivo ~/.pgpass, que deve ser só seu (chmod 600).
|
|
Tem o PostgreSQL a rodar no VPS e não consegue ligar a aplicação? Mostre-nos a mensagem de erro, sem a senha.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Hospedagem de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde R$ 36,30/mês (plano de 3 anos, com cupom) Ver planos |