Eliminar cláusula DEFINER en MySQL Backup

Eliminar cláusula DEFINER en MySQL Backup

Eliminar cláusula DEFINER en MySQL Backup. Cuando creamos una copia de seguridad en MySQL ya sea con PHP o desde el gestor phpMyAdmin genera automáticamente la siguiente sintaxis en las vistas.

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW

Esta línea SQL por lo general no es ningún problema porque está invocando al usuario root de MySQL. Por lo tanto, la copia de seguridad restauraría también los usuarios con sus privilegios. y por lo que no sería un problema.

💣 Descarga sistemas PHP y Laravel COMPLETOS GRATIS
Recursos premium listos para usar en proyectos reales 💻
👥 +1000 desarrolladores · 🔥 Publicaciones diarias
🔥 Unirme al canal GRATIS ahora 👥 Grupo de Facebook
⏳ Enlaces disponibles por tiempo limitado
💻 Sistemas completos 🔌 Plugins PRO ⚡ Scripts listos 🔥 Recursos exclusivos

Eliminar cláusula DEFINER en MySQL Backup
Eliminar cláusula DEFINER en MySQL Backup

Ahora, el detalle radica cuando deseamos llevarlo a otro servidor con otro nombre de usuario, ahí se es un problema porque genera error a la hora de importar las sentencias SQL de Vistas y Triggers.

¿Cuál sería la solución a este problema?

Existen 2 formas para solucionar el problema de usuario al importar las consultas SQL.

Primera forma: Eliminar al usuario de la línea SQL

Básicamente es quitar el usuario al momento de crear la vista, nos quedaría de la siguiente manera

CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW

Segunda forma: Reemplazar por usuario

En esta forma solo debemos de cambiar a CURRENT_USER

CREATE ALGORITHM=UNDEFINED DEFINER=CURRENT_USER SQL SECURITY DEFINER VIEW

Reemplazar definer usuario al crear backup con PHP

Si estas creando una copia de seguridad con PHP puede usar la función str_replace() para reemplazar el usuario root por el usuario actual, veamos un ejemplo.

$sql = str_replace("`root`@`localhost`","CURRENT_USER",$sql);

La variable $sql almacena toda la cadena de generación de la copia de seguridad y podemos filtrar para cambiar los valores específicos.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *