[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: [OT] Permisos de usuarios en MySQL.



Buenas,

>-----Mensaje original-----
>De: Roberto Quiñones [mailto:roberto@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.sevilla@gmail.com> escribió:
>>
>>> El 07/02/2014, a las 00:43, Fredy Guio <fredy.guio@gmail.com> escribió:
>>>
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Ramses <ramses.sevilla@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-REQUEST@lists.debian.org
>>>> with a subject of "unsubscribe". Trouble? Contact
>>>> listmaster@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



Reply to: