2012-03-08 30 views
11

El usuario de copia de seguridad tiene la función BackupAdmin y TODOS los privilegios (derechos de objeto, DDL, GRANT).¿Cuáles son los privilegios adecuados para mysqldump para el acceso de error denegado al ejecutar 'SELECT INTO OUTFILE'?

cmd> mysqldump --routines=TRUE --tab=C:\tmp -h localhost -u backup -pbackup schemalocal 
cmd> mysqldump: Got error: 1045: Access denied for user 'backup'@'%' (using password: YES) when executing 'SELECT INTO OUTFILE' 

La única manera de hacer que el trabajo es dar rol de DBA cuenta de copia de seguridad, pero que es un riesgo de seguridad, así que quiero darle sólo los derechos neccesary. ¿Cuáles son?

+0

¿Estás seguro, que la contraseña es correcta? Para SELECT INTO OUTFILE solo es necesario un privilegio: SELECT_PRIV –

+0

La contraseña es correcta porque probé con exactamente el mismo código pero luego le di el rol de DBA y funcionó bien. – Joe

+0

Descubrí que Workbench no permite realizar copias de seguridad de permisos para GRANT FILE. ¿Cuál es el comando para hacerlo para un usuario? http://dev.mysql.com/doc/refman/5.0/es/grant.html – Joe

Respuesta

15

Necesita el privilegio FILE para poder usar SELECT...INTO OUTFILE, que parece ser lo que mysqldump --tab usa para generar el volcado separado por tabulaciones.

Este privilegio es global, lo que significa que sólo se podrá conceder "ON *.*":

GRANT FILE ON *.* TO 'backup'@'%'; 
+1

Y la razón para necesitar estos privilegios es que los archivos se crean en el ** servidor ** si está ejecutando el comando en contra un servidor de base de datos remota. Tenga cuidado con matar hosts recuperando espacio en el disco. –

Cuestiones relacionadas