5

mysqlimportを使用して、テーブル内のデータをTSVファイルの値に置き換えています。すべてがうまくいっています(DBスーパーユーザーの名前とパスワードを使用してデータをインポートしています)ので、インポートするデータベースユーザーが置き換えたい単一のテーブルにしか影響を及ぼさないように、ロックします。ロードデータinfileを使用するための最小限のデータベース特権

にFILEを付与する必要があることは知っています。 "LOAD DATA 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のロードデータinfileのアクセスが拒否されました]の複製が可能です(http://stackoverflow.com/questions/2221335/access-denied-for-load-data-infile-in-mysql) – blo0p3r

答えて

1

を参照してください、私はそれが、少なくともドロップする権限を持つデータベースユーザーを使用せずにテーブル内のデータを置き換えるためにmysqlimportはを使用することが可能だと思うし、中に任意のテーブルを作成しないでくださいデータベース。

mysqlimportはあなたがデータをに入るテーブルを決定するためにロードしているファイルの名前を使用していますので、それはそれはにどんなテーブルを削除し、再作成できるようにする必要があることを理にかなって、私が欲しいテーブルだけではなく、交換することができます。

残念。

関連する問題