¿Es posible que un usuario que no sea el usuario root cree una base de datos?¿Qué permiso se requiere para que un usuario de MySQL cree una base de datos?
GRANT SELECT, CREATE ON *.* TO 'myguy'@'thatmachine' IDENTIFIED BY PASSWORD '*12057DFA2BFBD8760D4788735B1C3E26889D7ECE' |
GRANT ALL PRIVILEGES ON `db1`.* TO 'myguy'@'thatmachine'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myguy'@'thatmachine'
Me pregunto qué privilegio falta aquí? Además, ¿por qué la primera línea tiene una contraseña adjunta?
ACTUALIZACIÓN
quiero aclarar aún más lo que el punto de mi pregunta es. Tengo dos máquinas de base de datos, fuente y destino. Hay muchas bases de datos de clientes en la máquina fuente. Necesito mover esas bases de datos de origen a la otra máquina de destino.
Las bases de datos están en forma de archivos mysqldump'ed .sql, que se envían desde el origen al destino. El usuario objetivo, no el usuario root, debe recrear las bases de datos localmente desde cada archivo .sql, realizar algunas acciones y soltar la base de datos.
No puedo encontrar una forma de otorgar estos privilegios al usuario de destino sin otorgarle privilegios globales en *.*
, lo que hace que ese usuario sea tan peligroso como root.
Interesante. Ok, aquí hay un pensamiento. En lugar de usar mysql en la máquina de destino, use una base de datos alternativa específicamente para esta transacción. SQLite, o algo por el estilo. De esta forma, sus permisos no tienen nada que ver con ninguna base de datos totalmente operativa, solo pueden usarse con y para la base de datos temporal y las acciones. Puede que tenga que cambiar algunos scripts, o lo que no, pero estará mucho más seguro de esta manera. Haga un pequeño bolsillo de control, para esta hazaña específica, y luego anule cuando termine. Puede ser un trabajo extra, pero solucionará el problema. –