Estoy construyendo un sitio donde las personas crean redes sociales pequeñas y privadas. Para facilitar la administración y la portabilidad, me gustaría que cada red se almacene en una base de datos MySQL diferente.
Entiendo que no hay un límite artificial en la cantidad de bases de datos que un servidor MySQL puede manejar, y en mis pruebas básicas no hay un impacto medible en el rendimiento. Lo que me gustaría saber es: si permito que estas bases de datos se configuren sin mi intervención, ¿cuáles son las implicaciones de seguridad?
Mis pensamientos hasta ahora:
-
Para uso general, la aplicación se conectaría a MySQL como un usuario con derechos limitados de "SELECCIONAR", "INSERTAR", "ACTUALIZAR", "BORRAR". A este usuario se le otorgarían derechos para leer / escribir en cada base de datos creada.
-
Cuando se crea una nueva red, la aplicación se conectará a MySQL como un usuario especial con el privilegio "CREAR", por lo que puede crear una nueva base de datos.
-
Solo permitiría crear una nueva base de datos si estoy convencido de que la persona es un usuario legítimo (validación de correo electrónico, captcha, etc.).
-
Si se crean bases de datos ilegítimas, las notaré y eliminaré, y con suerte descubriré cómo evitar que se creen más.
Con una configuración como esta, ¿hay alguna implicación de seguridad que no haya pensado? ¿Existe algún peligro, además de la posible creación de bases de datos por parte de usuarios ilegítimos?