1
resposta

Erro para conectar banco postgre externo com usuário de leitura

Boa tarde!

Estou com dificuldade para alterar o banco de dados. Eu fiz a conexão usando um banco mysql de teste instalado localmente (como descrito no curso) e funcionou. Agora estou tentando conectar num banco postgresql em outro endereço, usando um usuário de leitura, pois preciso fazer apenas consultas no banco. Mas estou tendo problemas. Eu alterei os parâmetros do arquivo app.module.ts conforme abaixo:

app.module.tsEstou recebendo o seguinte erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ja tentei usar um usuário com permissão de escrita tb, mas tb deu erro (um erro diferente desse).

Alguém poderia me dar uma ajuda?

ps: Eu achei uma coisa estranha nesse erro: minha classe chama "Loja", mas na mensagem de erro aparece "Lojas", no plural.

1 resposta

Oi, dev! Tudo bem?

Desculpa a demora por um retorno.

De acordo com a imagem que retrata a mensagem de erro no terminal o erro está relacionado a permissões insuficientes no esquema público (public schema) do banco de dados PostgreSQL. Existem algumas etapas que podemos tentar para solucionar o problema:

  • Devemos nos certificar que o usuário definido em process.env.USUARIO_BANCO_DE_DADOS tenha as permissões adequadas para acessar o esquema público e executar consultas na tabela desejada. Podemos verificar as permissões do usuário no PostgreSQL usando o comando \du no console do PostgreSQL.
  • Devemos verificar se o usuário tem permissão para acessar o banco de dados "vr" especificado em database: 'vr' na configuração do Sequelize. Podemos usar o comando \l no console do PostgreSQL para listar os bancos de dados disponíveis e suas permissões.
  • Podemos nos certificar de que o usuário tenha permissões para criar tabelas e executar as operações necessárias no esquema público. Podemos conceder essas permissões ao usuário executando as seguintes consultas no console do PostgreSQL:
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO <nome_do_usuario>;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO <nome_do_usuario>;

Devemos substituir pelo nome do usuário definido em process.env.USUARIO_BANCO_DE_DADOS.

  • Por fim, se o nome da tabela for realmente "Lojas" no plural, precisamos verificar se estamos referenciando a tabela corretamente em nosso código. Caso contrário, devemos verificar se a nomenclatura está correta na definição do modelo Sequelize.

Após aplicar as alterações, devemos tentar executar novamente o aplicativo e observar se o erro persiste. Espero que isso ajude a resolver o problema com a conexão do banco de dados PostgreSQL!

Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓