Inicio Foros Bases de datos MySQL MySQL Error Code 1449 The user specified as a definer does not exist

Etiquetado: , , , , ,

Este debate contiene 11 respuestas, tiene 2 mensajes y lo actualizó  Varios hace 11 meses.

Viendo 12 publicaciones - del 1 al 12 (de un total de 12)
  • Autor
    Publicaciones
  • #1467

    Varios
    Moderador

    Hola, estoy tratando de ejecutar esta consulta en MySQL desde una aplicación en PHP:

    Y me da este error:

    Error Code: 1449. The user specified as a definer (‘usuario’@’%’) does not exist.

    ¿A qué puede ser debido? la consulta SQL creo que está bien formada.

    #1468
    alonsojpd
    alonsojpd
    Jefe de claves

    El usuario con el que has iniciado sesión ¿tiene permisos suficientes sobre las tablas del select para ejecutar la consulta en MySQL? ¿usas vistas en la consulta SQL? ¿el usuario tiene acceso a las vistas?

    #1469

    Varios
    Moderador

    Creo que sí tiene permisos, lo cree de esta forma en su momento:

    GRANT SELECT, INSERT, UPDATE, DELETE ON bd.* TO ‘usuario’@’%’;

    #1470

    Varios
    Moderador

    Ahh y sí uso vistas, vclientes es una vista.

    #1471
    alonsojpd
    alonsojpd
    Jefe de claves

    Intenta ejecutar este comando para añadir permisos al usuario “usuario” para ejecutar vistas:

     

    #1472

    Varios
    Moderador

    He ejecutado lo que me dices y sigue dando el mismo error 1449.

    #1473
    alonsojpd
    alonsojpd
    Jefe de claves

    ¿Utilizas algún procedimiento almacenado (stored procedure)?

    #1474

    Varios
    Moderador

    Sí, uso uno para la vista vcliente.

    #1475
    alonsojpd
    alonsojpd
    Jefe de claves

    Entonces ejecuta también este otro comando para agregar permisos de ejecución de procedimientos almacenados al usuario “usuario”:

     

    #1476

    Varios
    Moderador

    Lo he ejecutado también y me sigue dando el mismo error de nuevo, el 1449.

    #1477
    alonsojpd
    alonsojpd
    Jefe de claves

    En ese caso tienes que revisar el procedimiento almacenado y la vista por si tiene alguna referencia “define xxx@xxx” que no tengas establecida en la seguridad del usuario.

    Por ejemplo, si tienes este procedimiento:

    Debes tener también permisos para el usuario “consulta” para el rango de IP 192.168.%, con la instrucción:

    Obviamente en el GRANT establecerás los permisos que quieras que tenga el usuario: select, insert, update, delete, execute, show view.

    #1478

    Varios
    Moderador

    Revisando era la vista eclientes que tenía un define, como has dicho, apuntando a un usuario e IP que cambié hace unos días.

    Solucionado gracias a tus explicaciones.

    Muchas gracias.

Viendo 12 publicaciones - del 1 al 12 (de un total de 12)

Debes estar registrado para responder a este debate.