1
resposta

The user specified as a definer ('root'@'127.0.0.1') does not exist

Olá bom dia/boa tarde/boa noite.

Ao realizar o tentativa de utilizar os arquivos que estão na aula, a mensagem produzida indicava um definer que não existia. Bom, como só tenho um definer ou usuário, retirei o definer e executou normalmente.

O questionamento é: Qual a consequencia da retirada do definer? uma vez que o próprio heide insere o definer.

Ao analisar o procedure criado, o heide permitiu ver o código criado e indicou o definer: CREATE DEFINER=root@localhost PROCEDURE SP_EXECUTA_ESQ_DIR()

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

Executando com DEFINER= root@localhost a execução é normal.

observação: nos definers existem as aspas, como indicado no arquivo de apoio. Além disso as últimas postagens a dúvida é com relação a mensagem de erro do título do tópico.

1 resposta

Olá, Gustavo, tudo bem?

Desde já peço desculpas pela demora em obter retorno.

O definer é responsável por determinar os privilégios e permissões associados à execução da procedure ou script. Ao remover o definer, o procedimento será executado com o definer padrão do banco de dados. Isso pode não ser um problema se você for o único usuário e tiver privilégios suficientes para executar o procedimento.

Mas caso você esteja em um ambiente compartilhado, e possivelmente e em um ambiente onde diferentes usuários têm diferentes privilégios, a remoção do definer pode causar problemas de segurança ou de acesso aos dados.

Portanto, se deve ter cuidado ao utilizar o definer, pois alterações implicará nas permissões, na propriedade e no comportamento geral da procedure.

Espero ter ajudado.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!