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

Re: [OT] Permisos de usuarios en MySQL.



2014-02-07 14:19 GMT-05:00 Ramses <ramses.sevilla@gmail.com>:
> El 07/02/2014, a las 19:58, Camaleón <noelamac@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

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-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] 2FAFF157-C801-44B6-964C-53E56CC01B0D@gmail.com">http://lists.debian.org/[🔎] 2FAFF157-C801-44B6-964C-53E56CC01B0D@gmail.com
>



-- 


~ Happy install !


Erick.

---

Cellphone   :  +51 950307809
IRC     :   zerick
About :  http://about.me/zerick
Linux User ID :  549567


Reply to: