Re: [OT] Permisos de usuarios en MySQL.
El Fri, 07 Feb 2014 20:19:39 +0100, Ramses escribió: El 07/02/2014, a las 19:58, Camaleón noela...@gmail.com escribió: (...) 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. Vale, era sólo para confirmar. 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;. Entiendo pero ¿debe estar así? :-? (...) 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.. No entiendo lo que dices de ejecutar el comando pero bueno, que lo que sugiere el manual de MySQL es que es necesario activar el privilegio FILE sobre el usuario para que pueda ejecutar el volcado de datos. No todos los servicios de hospedaje permiten esta opción precisamente por motivos de seguridad (p. ej., en los servidores que tengo bajo Solaris está desactivado pero en linux suelen habilitarlo para facilitar la gestión de las bdd a los usuarios a través de phpMyAdmin). Saludos, -- Camaleón -- 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/pan.2014.02.08.14.29...@gmail.com
Re: [OT] Permisos de usuarios en MySQL. (SOLUCIONADO)
El 08/02/2014, a las 15:28, Camaleón noela...@gmail.com escribió: El Fri, 07 Feb 2014 20:19:39 +0100, Ramses escribió: El 07/02/2014, a las 19:58, Camaleón noela...@gmail.com escribió: (...) 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. Vale, era sólo para confirmar. 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;. Entiendo pero ¿debe estar así? :-? (...) 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.. No entiendo lo que dices de ejecutar el comando pero bueno, que lo que sugiere el manual de MySQL es que es necesario activar el privilegio FILE sobre el usuario para que pueda ejecutar el volcado de datos. No todos los servicios de hospedaje permiten esta opción precisamente por motivos de seguridad (p. ej., en los servidores que tengo bajo Solaris está desactivado pero en linux suelen habilitarlo para facilitar la gestión de las bdd a los usuarios a través de phpMyAdmin). Bien, pues como yo también he leído por ahí que no es recomendable darle permiso / privilegio FILE en MySQL a otro usuario que no sea root, por temas de seguridad, ejecutaré la exportación con el usuario root. Lo que está claro es que el usuario pepe no podía realizar la exportación a fichero .csv, porque no tenía el permiso / privilegio FILE. Saludos y gracias a todos, 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/5abdae01-71a3-445a-9dda-662889d77...@gmail.com
RE: [OT] Permisos de usuarios en MySQL.
Buenas, -Mensaje original- De: Roberto Quiñones [mailto:robe...@acshell.net] Enviado el: viernes, 07 de febrero de 2014 2:36 Para: debian-user-spanish@lists.debian.org Asunto: Re: [OT] Permisos de usuarios en MySQL. El 06-02-2014 21:43, Juan Manuel Acuña Barrera escribió: El 06/02/2014, a las 18:12, Ramses ramses.sevi...@gmail.com escribió: El 07/02/2014, a las 00:43, Fredy Guio fredy.g...@gmail.com escribió: -- Forwarded message -- From: Ramses ramses.sevi...@gmail.com Date: 2014-02-06 17:53 GMT-05:00 Subject: [OT] Permisos de usuarios en MySQL. To: debian-user-spanish@lists.debian.org Hola a todos, Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Me da un error diciendo que no tiene permisos. Verifica si el usuario pepe puede ejecutar el mismo comando dentro de la consola mysql. si lo puedes ejecutar, verfica que el usuario pepe tenga permisos de escritura donde estas guardando el archivo de salida. Fredy, el usuario no lo tengo creado en el systema, sólo lo creé en MySQL. ¿Es ahí donde está la historia?. ¿Tendría que crearlo también en el sistema?. No necesariamente necesitas un usuario del sistema. Ampliando un poco lo que dice Fredy: 1.- Verifica que el usuario pepe pueda ejecutar el mismo comando dentro de la consola de mysql ( mysql -u pepe mibasededatos ). 2.- Verifica que el usuario _con el que estás logeado_ tenga permisos de escritura en la carpeta donde estás. Nota, el usuario con que estás logeado parece que no es pepe, ok? 3.- Solución temporal (ojo al final, agregué /tmp/) : mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B /tmp/fichero_salida.csv Saludos! Saludos y gracias, Ramses Si puedes adjunta el error que genera el comando. Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Saludos y gracias, 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/ECAD97C0-83AA-487C-915E- 5F5DF7B4495D@gmail.c om Te fijastes si el usuario pepe tiene los permisos de File_priv en la tabla de privilegios globales, quisas por eso no puedes generar el cvs, ademas debes agregar un into outfile para la salida del cvs, eso es lo que se recomienda en la documentación de MySQL. Por lo que he visto, el permiso FILE del usuario debe ser de forma global, es decir, sobre todas las Bases de Datos, ¿no?. ¿Es conveniente esto o mejor realizar la tarea con root? El comando real que ejecuto es el siguiente: 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' Desde dentro de MySQL tampoco lo permite a ese usuario. Saludos y gracias, 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/002001cf240b$349f2980$9ddd7c80$@gmail.com
Re: [OT] Permisos de usuarios en MySQL.
On Fri, 7 Feb 2014 14:47:50 +0100 Ramses II ramses.sevi...@gmail.com wrote: ¿Es conveniente esto o mejor realizar la tarea con root? Si tienes acceso a el usuario root de mysql si, el problema cuando no puedes acceder a root tienes menos privilegios por defecto. El comando real que ejecuto es el siguiente: 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' Desde dentro de MySQL tampoco lo permite a ese usuario. También puedes hacer un script en php. O darle mas privilegios A estos privilegios los llamo admin esto se dan desde el usuario root: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON encuesta_db.* TO pepe@% IDENTIFIED BY 'pepepass' WITH GRANT OPTION; -- Servicios:. http://mamalibre.com.ar/servicios.php MamaLibre, Casa en Lincoln, Ituzaingo 1085 CP6070, Buenos Aires, Argentina pgpiCoihrATiD.pgp Description: PGP signature
Re: [OT] Permisos de usuarios en MySQL.
El Thu, 06 Feb 2014 23:53:47 +0100, Ramses escribió: Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: 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: The MySQL Access Privilege System http://dev.mysql.com/doc/refman/5.7/en/privilege-system.html Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Comprueba los permisos del usuario (show grants...) y compáralos con los que tiene el administrador. Saludos, -- Camaleón -- 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/pan.2014.02.07.14.44...@gmail.com
Re: [OT] Permisos de usuarios en MySQL.
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 'xxx' WITH GRANT OPTION | Los permisos que tiene pepe son: (...) | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | 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) 2/ No has especificado contraseña para el usuario pepe (no hay IDENTIFIED BY PASSWORD) ¿es correcto? 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 Saludos, -- Camaleón -- 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/pan.2014.02.07.18.59...@gmail.com
Re: [OT] Permisos de usuarios en MySQL.
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 'xxx' WITH GRANT OPTION | Los permisos que tiene pepe son: (...) | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | 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
Re: [OT] Permisos de usuarios en MySQL.
2014-02-07 14:19 GMT-05:00 Ramses ramses.sevi...@gmail.com: 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 'xxx' WITH GRANT OPTION | Los permisos que tiene pepe son: (...) | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | 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 Haz un mysql grant all privileges on encuesta_db.* to 'pepe'@'localhost' identified by 'pepepass'; mysql flush privileges; con eso conseguirás que el usuario pepe solo tenga acceso a dicha db. -- 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 -- ~ Happy install ! Erick. --- Cellphone : +51 950307809 IRC : zerick About : http://about.me/zerick Linux User ID : 549567 -- 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/cadond36tzqhau9jzw0pvkas6q4_5f8+gqegdyqvayaziyvg...@mail.gmail.com
Re: [OT] Permisos de usuarios en MySQL.
El día 7 de febrero de 2014, 11:30, Ramses II ramses.sevi...@gmail.com escribió: -Mensaje original- De: Camaleón [mailto:noela...@gmail.com] Enviado el: viernes, 07 de febrero de 2014 15:44 Para: debian-user-spanish@lists.debian.org Asunto: Re: [OT] Permisos de usuarios en MySQL. El Thu, 06 Feb 2014 23:53:47 +0100, Ramses escribió: Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: 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) # El SELECT... FROM... lo permite sin problemas en MySQL entrando con el user pepe. The MySQL Access Privilege System http://dev.mysql.com/doc/refman/5.7/en/privilege-system.html Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Comprueba los permisos del usuario (show grants...) y compáralos con los que tiene el administrador. Los permisos que tiene root son: mysql show grants; ++ | Grants for root@localhost | ++ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'xxx' WITH GRANT OPTION | ++ 1 row in set (0.00 sec) Los permisos que tiene pepe son: encuesta mysql show grants; +--+ | Grants for pepe@localhost | +--+ | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | GRANT ALL PRIVILEGES ON `encuesta`.* TO 'pepe'@'localhost' WITH GRANT OPTION| +--+ 2 rows in set (0.00 sec) 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. 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?. Saludos, Ramses -- Acabo de realizar una serie de pruebas, reproduciendo tu error al pie de la letra. La solucion: mysql -u root -p mysql use mysql; mysql update user set File_priv='Y' where user ='pepe'; mysql quit desde consola como root ( no sé si es necesario, prueba) # /etc/init.d/mysql restart # locate encuesta/encuesta.frm /var/lib/mysql/encuesta /var/lib/mysql/encuesta/encuesta.frm mysql -u pepe -pcontraseña mysql select ... INTO OUTFILE 'pruebas.csv' ... ; Query OK, x rows affected (x.xx sec) desde consola # ls -l /var/lib/mysql/encuesta/pruebas.csv -rw-rw-rw- 1 mysql mysql xx feb 7 13:59
Re: [OT] Permisos de usuarios en MySQL.
El 07/02/2014, a las 20:59, Erick Ocrospoma zipper1...@gmail.com escribió: 2014-02-07 14:19 GMT-05:00 Ramses ramses.sevi...@gmail.com: 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 'xxx' WITH GRANT OPTION | Los permisos que tiene pepe son: (...) | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | 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 Haz un mysql grant all privileges on encuesta_db.* to 'pepe'@'localhost' identified by 'pepepass'; mysql flush privileges; con eso conseguirás que el usuario pepe solo tenga acceso a dicha db. Erick, con la salida que he puesto antes, creo que sólo tiene acceso a esa base de datos. El tema está ahora en que no tiene permiso FILE, por lo que parece que es por eso por lo que no puede exportar a un fichero .csv. He estado leyendo y hablan de que dar permiso FILE a un usuario, puede ser un tanto peligroso... He leído que FILE es un permiso / privilegio Global, es decir, que creo que no se puede aplicar a una única base de datos, sino que se aplicaría a todas. ¿Estoy en lo cierto? Bueno, aunque, supuestamente, si al resto de bases de datos no tiene permisos SELECT, DROP, DELE..., tampoco podría exportarlas ni trastearlas, ¿no?. 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/0ee39fe7-2a5d-4624-a831-29c6064a0...@gmail.com
RE: [OT] Permisos de usuarios en MySQL.
-Mensaje original- De: Camaleón [mailto:noela...@gmail.com] Enviado el: viernes, 07 de febrero de 2014 15:44 Para: debian-user-spanish@lists.debian.org Asunto: Re: [OT] Permisos de usuarios en MySQL. El Thu, 06 Feb 2014 23:53:47 +0100, Ramses escribió: Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: 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) # El SELECT... FROM... lo permite sin problemas en MySQL entrando con el user pepe. The MySQL Access Privilege System http://dev.mysql.com/doc/refman/5.7/en/privilege-system.html Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Comprueba los permisos del usuario (show grants...) y compáralos con los que tiene el administrador. Los permisos que tiene root son: mysql show grants; ++ | Grants for root@localhost | ++ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'xxx' WITH GRANT OPTION | ++ 1 row in set (0.00 sec) Los permisos que tiene pepe son: mysql show grants; +--+ | Grants for pepe@localhost | +--+ | GRANT USAGE ON *.* TO 'pepe'@'localhost' IDENTIFIED BY PASSWORD 'xx' | | GRANT ALL PRIVILEGES ON `encuesta`.* TO 'pepe'@'localhost' WITH GRANT OPTION | +--+ 2 rows in set (0.00 sec) 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. 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?. 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/004501cf242a$4b84bb50$e28e31f0$@gmail.com
Re: [OT] Permisos de usuarios en MySQL.
El 07/02/2014, a las 00:43, Fredy Guio fredy.g...@gmail.com escribió: -- Forwarded message -- From: Ramses ramses.sevi...@gmail.com Date: 2014-02-06 17:53 GMT-05:00 Subject: [OT] Permisos de usuarios en MySQL. To: debian-user-spanish@lists.debian.org Hola a todos, Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Me da un error diciendo que no tiene permisos. Verifica si el usuario pepe puede ejecutar el mismo comando dentro de la consola mysql. si lo puedes ejecutar, verfica que el usuario pepe tenga permisos de escritura donde estas guardando el archivo de salida. Fredy, el usuario no lo tengo creado en el systema, sólo lo creé en MySQL. ¿Es ahí donde está la historia?. ¿Tendría que crearlo también en el sistema?. Saludos y gracias, Ramses Si puedes adjunta el error que genera el comando. Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Saludos y gracias, 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/ecad97c0-83aa-487c-915e-5f5df7b44...@gmail.com
Re: [OT] Permisos de usuarios en MySQL.
On Fri, 7 Feb 2014 01:12:19 +0100 Ramses ramses.sevi...@gmail.com wrote: Usa root hasta que halles la solución. -- Servicios:. http://mamalibre.com.ar/servicios.php MamaLibre, Casa en Lincoln, Ituzaingo 1085 CP6070, Buenos Aires, Argentina pgpUK4o1EkxBe.pgp Description: PGP signature
Re: [OT] Permisos de usuarios en MySQL.
El 06/02/2014, a las 18:12, Ramses ramses.sevi...@gmail.com escribió: El 07/02/2014, a las 00:43, Fredy Guio fredy.g...@gmail.com escribió: -- Forwarded message -- From: Ramses ramses.sevi...@gmail.com Date: 2014-02-06 17:53 GMT-05:00 Subject: [OT] Permisos de usuarios en MySQL. To: debian-user-spanish@lists.debian.org Hola a todos, Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Me da un error diciendo que no tiene permisos. Verifica si el usuario pepe puede ejecutar el mismo comando dentro de la consola mysql. si lo puedes ejecutar, verfica que el usuario pepe tenga permisos de escritura donde estas guardando el archivo de salida. Fredy, el usuario no lo tengo creado en el systema, sólo lo creé en MySQL. ¿Es ahí donde está la historia?. ¿Tendría que crearlo también en el sistema?. No necesariamente necesitas un usuario del sistema. Ampliando un poco lo que dice Fredy: 1.- Verifica que el usuario pepe pueda ejecutar el mismo comando dentro de la consola de mysql ( mysql -u pepe mibasededatos ). 2.- Verifica que el usuario _con el que estás logeado_ tenga permisos de escritura en la carpeta donde estás. Nota, el usuario con que estás logeado parece que no es pepe, ok? 3.- Solución temporal (ojo al final, agregué /tmp/) : mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B /tmp/fichero_salida.csv Saludos! Saludos y gracias, Ramses Si puedes adjunta el error que genera el comando. Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Saludos y gracias, 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/ecad97c0-83aa-487c-915e-5f5df7b44...@gmail.com signature.asc Description: Message signed with OpenPGP using GPGMail
Re: [OT] Permisos de usuarios en MySQL.
El 06-02-2014 21:43, Juan Manuel Acuña Barrera escribió: El 06/02/2014, a las 18:12, Ramses ramses.sevi...@gmail.com escribió: El 07/02/2014, a las 00:43, Fredy Guio fredy.g...@gmail.com escribió: -- Forwarded message -- From: Ramses ramses.sevi...@gmail.com Date: 2014-02-06 17:53 GMT-05:00 Subject: [OT] Permisos de usuarios en MySQL. To: debian-user-spanish@lists.debian.org Hola a todos, Tengo una aplicación que se conecta a MySQL con un usuario pepe con password pepepass con el que creo, modifico, borro y muestro registros de/en una base de datos. El usuario lo cree en MySQL con los permisos ALL para localhost y esa base de datos en particular. Bien, el tema es que si intento generar un fichero .CSV exportando una selección de registros con un comando del tipo: mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Me da un error diciendo que no tiene permisos. Verifica si el usuario pepe puede ejecutar el mismo comando dentro de la consola mysql. si lo puedes ejecutar, verfica que el usuario pepe tenga permisos de escritura donde estas guardando el archivo de salida. Fredy, el usuario no lo tengo creado en el systema, sólo lo creé en MySQL. ¿Es ahí donde está la historia?. ¿Tendría que crearlo también en el sistema?. No necesariamente necesitas un usuario del sistema. Ampliando un poco lo que dice Fredy: 1.- Verifica que el usuario pepe pueda ejecutar el mismo comando dentro de la consola de mysql ( mysql -u pepe mibasededatos ). 2.- Verifica que el usuario _con el que estás logeado_ tenga permisos de escritura en la carpeta donde estás. Nota, el usuario con que estás logeado parece que no es pepe, ok? 3.- Solución temporal (ojo al final, agregué /tmp/) : mysql -u pepe --password=pepepass mibasededatos -e SELECT * FROM tabla where -B /tmp/fichero_salida.csv Saludos! Saludos y gracias, Ramses Si puedes adjunta el error que genera el comando. Si ejecuto el mismo comando pero con el usuario root y la password rootpass, me genera el fichero sin problemas. mysql -u root --password=rootpass mibasededatos -e SELECT * FROM tabla where -B fichero_salida.csv Si ejecuto el comando: mysql -u pepe -ppepepass Entro perfectamente en MySQL y puedo crear, borrar, modificar y listar registros de esa base de datos. ¿Sabe alguien si necesito algún permiso especial para ejecutar el mismo comando con un usuario distinto a root? Saludos y gracias, 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/ecad97c0-83aa-487c-915e-5f5df7b44...@gmail.com Te fijastes si el usuario pepe tiene los permisos de File_priv en la tabla de privilegios globales, quisas por eso no puedes generar el cvs, ademas debes agregar un into outfile para la salida del cvs, eso es lo que se recomienda en la documentación de MySQL. Saludos. -- 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/52f4387e.2020...@acshell.net