Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/12/2013, 14:34
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: CREATE command denied for user al dar permisos.

No es un error. Es simplemente que el GRANT ALL no otorga permisos de GRANT.
Para que se entienda:
Darle a un usuario todos los permisos, hace que el usuario destinatario herede todos los permisos de base de datos, tales como CREATE, UPDATE, DELETE, DROP. Estos afectan objetos en la base, pero los permisos no son objetos de base, sino lo que podríamos llamar propiedades sobre los objetos.
Es decir, no es lo mismo poder crearlos y destruirlos, que permitir y hacer heredar su uso. AL menos para las bases de datos.
Para que un usuario pueda crear usarios, es simplemente permiso de CREATE USER, pero para que además pueda transferir los mismos permisos que tiene, el usuario debe si o sí haber recibido los permisos para otorgar permisos, y esos no están incluidos en el ALL.

Este tipo de detalles lo encontrarás leyendo con más detalle el manual de referencia: http://dev.mysql.com/doc/refman/5.0/es/grant.html

En definitiva, esto es:
Código MySQL:
Ver original
  1. CREATE USER 'javier.sanchez' IDENTIFIED BY 'javier' WITH GRANT OPTION

Otra cosa que debes saber, anticipándome a lo que se te presente, es que los permisos de ejecutar stored procedures, y los para usar el LOAD DATA, tampoco están incluidos en el GRANT ALL. DEben ser dados en forma específica.

Una nota final: La lógica de permisos especifica que un usuario sólo puede otorgar a otro usuario los mismos permisos que posee, o menos, pero nunca más de los que él mismo tiene.
En un ejemplo: Si "juan" no tiene permisos de DROP TABLE, no puede otorgar a sus usuarios creados ese permiso tampoco.
¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)