he escrito todos los procedimientos de MySQL como [email protected]
:¿Se requiere `definer` cuando se crea un procedimiento almacenado?
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_add_user`(...)
El problema es que, cuando se despliega a otro servidor, tengo que sustituir con root
usuario actual y reemplazarlo con localhost
IP actual, lo cual es molesto.
¿Hay alguna manera de escribir procedimientos para que alguien que quiera usar mi base de datos y procedimientos no tenga que modificar el definidor de cada procedimiento?
Dice: "La cláusula DEFINER determina el contexto de seguridad que se utiliza para verificar los privilegios de acceso en el momento de activación del activador Más detalle se da más adelante en esta sección.". Entonces, cuando me aseguro de que los procedimientos solo los usen los usuarios con privilegios, ¿puedo eliminar totalmente las cosas definidas? – Xorty
Sí, supongo. Creo que cuando defines los permisos del usuario hay un privilegio de "ejecutar procedimientos" que se puede conceder/denegar (no estoy seguro de eso ...) – maid450
Bueno, lo intentaré más tarde y responderé si funcionó. Gracias – Xorty