Configuração do Banco de Dados - DIO
jabguimaraes opened this issue · comments
Bom dia, tudo bem?
Pois bem, estou fazendo o projeto pela Dio (Bootcamp Web Developer do Carrefour), fiz o dowload do PostgreSQL, como manda o site oficial e afins, seguindo as suas aulas, na configuração de banco de dados e na criação do mesmo, fiz de acordo com os seus comandos, porém, claro, alterei o usuário e a senha, pois bem, ao criar, diz que o meu usuário não tem "role", como faço para consertar isso? Mesmo colocando o "cami" como usuário e o "root" como senha, não dá certo.
Aguardo.
Oi, @jabguimaraes. Tudo bem sim e por aí? :)
Seguinte, você criou um usuário com o nome cami e senha root no seu postgreSQL?
Por exemplo, nesta máquina que estou agora, eu tenho o postgresSQL instalado, porém não tem o usuário cami:
psql -U cami postgres
- psql = É um cliente no modo terminal do PostgreSQL
- -U = usuário
- cami = nome do usuário
- postgres = banco de dados que o próprio postegreSQL cria quando nós instalamos
Também não estou conseguindo entrar com o usuário postgres. Vou te explicar o porquê:
O método de autenticação peer funciona obtendo o nome de usuário do sistema operacional do cliente do kernel (que no meu caso é camila) e usando-o como o nome de usuário do banco de dados permitido (com mapeamento opcional de nome de usuário). Este método é suportado apenas em conexões locais.
Logo eu não consigo entrar, já que camila !== postgres
https://www.postgresql.org/docs/current/auth-peer.html
Entao, há algumas soluções para resolver esse "problema". Escolhi criar um novo usuário e com o método de autenticação para md5:
O método md5 usa um mecanismo de desafio-resposta personalizado menos seguro. Ele evita a detecção de senhas e evita o armazenamento de senhas no servidor em texto simples, mas não oferece proteção se um invasor conseguir roubar o hash de senha do servidor. Além disso, o algoritmo de hash MD5 hoje não é mais considerado seguro contra determinados ataques.
https://www.postgresql.org/docs/14/auth-password.html
CONFIGURAÇÃO DO POSTGRESQL NO UBUNTU
- Veja a versão do seu postegreSQL (No meu caso, tenho o 14 e o 13):
ls /etc/postgresql
- Crie o caminho /etc/postgresql/[VERSION]/main/pg_hba.conf e abra o arquivo pg_hba.conf em um editor de texto qualquer. No meu caso, irei utilizar o nano.
- Faça o mesmo passo anteirior com a outra versão que você tiver
- Vá até o final do arquivo e encontre a opção: Database administrative login by Unix domain socket
- Agora, crie um usuário com o mesmo nome do usuário da máquina (no meu caso camila) e com o usuário que você quer criar (escolhi cami) e no método de autenticação, escolha a opção md5.
- Se estiver usando o nano
Ctrl + O
para salvar as modificações eCtrl + X
para fechar o arquivo. - Próximo passo agora é reiniciar o serviço do postgreSQL:
sudo systemctl restart postgresql
- Agora vamos criar uma senha para o usuário cami e camila
- Mude o usuário do sistema para postgres (esse usuário foi criado automaticamente quando você instalou o PostegreSQL na sua máquina):
sudo -i -u postgres
- Lembra que esse usuário tem a permissão peer? E que agora o nome do usário do sistema é igual ao nome do usuário do banco de dados (Confira essa informação na imagem do tópico 4).
- Agora vamos criar o usuário cami e escolher uma senha:
createuser -dPs cami
(Faça o mesmo com o usuário camila e também pesquise sobre as roles que acabei de atribuir com -dPs)
- Agora sim, eu consigo entrar no postgreSQL com o usuário cami ou camila ou qualquer outro que eu criar.
- Veja os usuários que nós temos:
\du;
(Para sair da visualiaçãoq
)
- Agora vamos criar o banco de dados academia e conferir se foi criado:
create database academia;
- Troque para o banco de dados academia:
\c academia
;
Agora sim, você consegue conectar sua aplicação Spring Boot com banco de dados.
Certo, obrigado.