Permítame ponerle un prefijo a mi pregunta con información sobre nuestro entorno. Tenemos un servidor web con más de 100 sitios web. El servidor web tiene una versión 5.7 del servidor MySQL correspondiente. Cada sitio web de PHP tiene una base de datos MySQL con un usuario de MySQL adjunto que solo tiene permisos establecidos para que pueda acceder a su base de datos. Anteriormente, solo hemos otorgado a ese usuario de sitio web, SELECT, UPDATE, DELETE e INSERT. Ahora nos encontramos en una situación en la que ahora debemos otorgarle al usuario los permisos Crear, Alterar y Eliminar. Me pregunto qué riesgos potenciales de seguridad nos ponen al otorgar estos permisos adicionales a estos usuarios de sitios web.
El primero obvio que se me ocurre es con el permiso DROP, alguien podría, obviamente, eliminar todas las tablas y todos los datos se perderían. Estoy pensando que podríamos reestructurar nuestro código para no requerir DROP. Si ese es el caso y solo necesitamos agregar CREAR & Alterar al usuario, ¿cuál es la situación del peor de los casos? La base de datos también está bloqueada por IP para que solo se pueda acceder dentro de nuestra red, por lo que la única forma en que un usuario podría acceder a la base de datos directamente sería a través de una inyección SQL a través del sitio web.