Num VPS com PostgreSQL já instalado, entre como o utilizador do sistema postgres com sudo -u postgres psql, e crie o utilizador e a base com dois comandos: CREATE USER ... e CREATE DATABASE ... OWNER .... Depois ligue-se com psql -h 127.0.0.1 -U utilizador -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 utilizador, com uma palavra-passe forte (o gerador de senhas serve):CREATE USER loja WITH PASSWORD 'palavra-passe-forte';
|
|
| 3 |
Crie a base e entregue-a a esse utilizador:CREATE DATABASE loja OWNER loja;
|
|
| 4 |
Confira com \l (lista as bases) e \du (lista os utilizadores). Saia com \q.
|
|
| 5 |
Ligue-se como o novo utilizador, por rede local:psql -h 127.0.0.1 -U loja -d lojaO psql pede a palavra-passe.
|
|
| 6 |
Na aplicação, use o servidor 127.0.0.1, a porta 5432, e os três valores: base, utilizador e palavra-passe.
|
|
Comandos que vai usar muitas vezes
| Comando |
O que faz |
\l |
Lista as bases de dados. |
\c nome |
Passa a trabalhar noutra base. |
\dt |
Lista as tabelas da base actual. |
\du |
Lista utilizadores (papéis). |
ALTER USER loja WITH PASSWORD 'nova'; |
Muda a palavra-passe. |
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 ficheiro local e espera que o utilizador do sistema tenha o mesmo nome. Com o -h 127.0.0.1 pede a palavra-passe, 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 utilizador
Para um segundo utilizador 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 omissão. Para retirar um acesso, existe o REVOKE, que faz o contrário de GRANT.
Não dê à aplicação o utilizador postgres. Esse é o administrador de tudo. Um utilizador por aplicação, dono só da sua base, limita o estrago se algo correr mal. Para guardar a palavra-passe fora do comando, o psql lê-a de um ficheiro ~/.pgpass, que deve ser só seu (chmod 600).
|
|
Tem o PostgreSQL a correr no VPS e não consegue ligar a aplicação? Mostre-nos a mensagem de erro, sem a palavra-passe.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |