El 07/02/2014, a las 19:58, Camaleón <noela...@gmail.com> escribió:
> El Fri, 07 Feb 2014 18:30:22 +0100, Ramses II escribió: > > (...) > >>>> mysql -u pepe --password=pepepass mibasededatos -e "SELECT * FROM >>>> tabla where ...." -B > fichero_salida.csv >>>> >>>> Me da un error diciendo que no tiene permisos. >>> >>> ¿Qué error, exactamente? Aunque me lo imagino, pero nunca está de más >>> confirmar :-) Por otra parte, ¿te permite ejecutar el "SELECT... >>> FROM..." sin el volcado? En cualquier caso, esta página te puede dar >>> alguna idea: >> Esta es la salida del comando: >> >> # mysql -u pepe --password=pepepass encuesta_db -e "SELECT * FROM >> encuesta where MONTH(fecha)=MONTH(CURDATE()) INTO OUTFILE >> '/consultas/pruebas.csv' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY >> '\"' LINES TERMINATED BY '\r\n'" >> ERROR 1045 (28000) at line 1: Access denied for user 'pepe'@'localhost' >> (using password: YES) >> # > > Gracias :-) > >> El SELECT... FROM... lo permite sin problemas en MySQL entrando con el >> user "pepe". > > Okay. > > (...) > >>> Comprueba los permisos del usuario (show grants...) y compáralos con los >>> que tiene el administrador. >> >> Los permisos que tiene "root" son: > > (...) > >> | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY >> PASSWORD 'xxxxxxx' WITH GRANT OPTION | > >> Los permisos que tiene "pepe" son: > > (...) > >> | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD >> 'xxxxxxxxxxxxxx' | >> | GRANT ALL PRIVILEGES ON `encuesta`.* TO 'pepe'@'localhost' WITH GRANT >> OPTION | > > (...) > > Hum... dos apuntes: > > 1/ Tengo mis dudas en la sintaxis que usas para seleccionar la base de > datos (`encuesta`.*), comprueba que sea la correcta. Estoy leyendo el > manual pero no me queda claro el uso de esas comillas simples invertidas > ni si la base de datos se llama así, exactamente. > > (supongo que la sintaxis estará bien porque si no te daría un error al > ejecutar el comando pero el nombre de la base de datos sobre la que > quieres aplicar los privilegios sí tiene que coincidir) Camaleón, esas son las salidas del comando "show grants;" habiendo entrado en mysql con cada usuario. Realmente la base de datos es "encuesta_db", sólo que al pegar los datos aquí, se ha perdido el _db. > 2/ No has especificado contraseña para el usuario pepe (no hay > "IDENTIFIED BY PASSWORD") ¿es correcto? Eso es lo que aparece al entrar en MySQL con el usuario "pepe", con su contraseña, y ejecutar el comando "show grants;". >> Puede que el tema esté en lo que han comentado varios de ustedes, en la >> asignación del permiso FILE, pero como he estado leyendo, parece que es >> un permiso que se tiene que asignar sobre todo, y no sólo sobre una base >> de datos en concreto. >> >> Yo quiero que ese usuario "pepe" solo tenga acceso a "encuesta_db", y >> nada más. > > Acceso y permisos para volcar los datos a un archivo, que creo que ahí es > donde tienes el problema: > > http://dev.mysql.com/doc/refman/5.1/en/select-into.html > > El comando que quieres ejecutar necesita de permisos concretos, según > parece. > >> Ahora, si estoy en lo cierto del permiso FILE, parece que lo más viable, >> en cuanto a seguridad se refiere, es ejecutar ese comando con el usuario >> "root". ¿Estoy en lo cierto?. > > Según entiendo, FILE es un "privilegio" que tendrías que activar/ > habilitar sobre tu usuario para que pueda realizar la acción que pides. > No es un comando. > > http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file No he dicho que sea un comando, digo que es un permiso. A lo que me refería con lo de ejecutar el comando con el usuario "root", es a ejecutar el "mysql -u root --pass.........". Saludos, Ramses -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/2faff157-c801-44b6-964c-53e56cc01...@gmail.com