2012-03-08 4 views
11

バックアップユーザーにはBackupAdminロールとすべての特権(オブジェクト権限、DDL、GRANT)があります。'SELECT INTO OUTFILE'を実行しているときに、エラーアクセスのためにmysqldumpが拒否される適切な権限はどれですか?

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' 

それを動作させるための唯一の方法は、バックアップアカウントにDBAの役割を与えることですが、それはので、私はそれを唯一neccesary権限を付与したいセキュリティリスクです。 どちらですか?

+0

は、パスワードが正しいことを、よろしいですか? SELECT INTO OUTFILEには、必要な特典が1つだけあります。SELECT_PRIV –

+0

パスワードは正確ですが、まったく同じコードで試しましたが、DBAの役割を与えてからうまくいきました。 – Joe

+0

私は、WorkbenchがGRANT FILEに権限をバックアップすることを許可していないことを知りました。 ユーザーのために実行するコマンドはどれですか? http://dev.mysql.com/doc/refman/5.0/es/grant.html – Joe

答えて

15

SELECT...INTO OUTFILEの使用を許可するには、特権が必要です。mysqldump --tabは、タブ区切りのダンプを生成するために使用されます。

この権限は、それが唯一の「ON *.*」付与することができることを意味する、globalです:

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

これらの特権が必要な理由は、コマンドを実行している場合にファイルが**サーバー**上に作成されていることですリモートDBサーバーディスクスペースを埋めることによってホストを殺すことに注意してください。 –

関連する問題