2012-03-08 22 views
11

備份用戶具有BackupAdmin角色和ALL權限(對象權限,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,只有一個必要條件:SELECT_PRIV – 2012-03-08 12:09:52

+0

密碼是正確的,因爲我嘗試了完全相同的代碼,但給了它DBA角色,它工作正常。 – Joe 2012-03-08 17:20:12

+0

我發現Workbench不允許將權限備份到GRANT FILE。 哪一個命令爲用戶做到這一點? http://dev.mysql.com/doc/refman/5.0/es/grant.html – Joe 2012-03-09 13:34:38

回答

15

您需要FILE權限才能被允許使用SELECT...INTO OUTFILE,這似乎是mysqldump --tab用來生成製表符分隔的轉儲。

這種特權是global,這意味着它可能只被授予「ON *.*」:

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

而需要這些特權的原因是,如果您正在運行命令,則會在**服務器**上創建這些文件遠程數據庫服務器。注意通過填充磁盤空間來殺死主機。 – 2013-10-30 18:28:35

相關問題