2012-12-14 48 views
5

我正在使用mysqlimport將來自TSV文件的值替換爲表中的數據。一切工作正常(使用數據庫超級用戶名和密碼導入數據),所以現在我想鎖定它,以便導入的數據庫用戶只能影響我想要替換的單個表。使用加載數據infile的最小數據庫權限

我知道我需要授予文件爲了使用「加載數據INFILE」(mysqlimport包裝),但我無法找到我可以在數據庫上授予的最小權限集。

我試過了;

grant FILE on *.* to ... 
grant ALL on dbname.tablename to .... 

但是,當我運行mysqlimport時,這給了我一個錯誤;

mysqlimport: Error: Access denied for user ... 

有誰知道是否有可能到數據庫隔離,以便只有相關表格可通過該用戶改變,還是我讓他們更廣泛的訪問,使mysqlimport的可能嗎?

+0

你知道'FILE'不在'ALL'嗎?這有點不恰當。然後再次,如果您獲得拒絕訪問權限,那麼在用戶名,主機或密碼之前都會失敗。 – Wrikken

+0

[在MySQL中加載數據失敗時拒絕訪問]的可能重複(http://stackoverflow.com/questions/2221335/access-denied-for-load-data-infile-in-mysql) – blo0p3r

回答

1

要回答我的問題,我不認爲這是可以使用的mysqlimport表中的替換數據,而無需使用有權限至少下降一個數據庫用戶,並在創建任何表數據庫。

的mysqlimport使用你加載來決定數據進入該表的文件名,所以它是有道理的,它需要能夠刪除並重新任何表,不只是表我它能夠取代。

可惜。