Modificar el “definer” de procedimientos almacenados en mysql

Uno de los problemas que se me han llegado a presentar cuando cargo respaldos de bases de datos es que al momento de invocar un Stored Procedure, mysql me devuelve el error “There is no user@ipaddress registered”.  Este problema sucede por que el stored procedure fué compilado por un usuario que no existe en el servidor actual y que por tanto cualquier usuario que intente llamar a esos procedimientos almacenados carecen de permisos de ejecución.

Solucionar este problema es muy sencillo solo hay que ingresar a la consola de comandos de mysql y ejecutar:

   UPDATE mysql.proc SET definer = 'newuser@ipaddress'
    WHERE definer = 'olduser@ipaddress';


Después de ello ejecutaremos  FLUSH PRIVILEGES;  esto con la finalidad de que el motor  vuelva a leer las tablas de permisos pues de otra manera los cambios solo serán considerados después de reiniciar el servidor.

Saludos

 

3 Comments

Deja un comentario