Securing LOAD DATA LOCAL I need to periodically import significant number of rows from a CSV file. I'd like to be able to open up the least amount of access to the user (automation script) for this job.

Is it possible to limit LOAD DATA LOCAL to a specific table and user? If not, I'm thinking of creating a "staging database", load-data-local into it then INSERT-SELECT across two databases under the same MySQL instance.

Any other suggestions?
Create stored procedure which performs LOAD DATA INFILE. 
Specify its DEFINER attribute as a user who have rights to import data (root@localhost, for example). 
Specify SQL SECURITY DEFINER attribute.
Grant the user to execute this procedure.


Result: when user calls this SP it is executed with the rights of its definer - it is enough to import data. Even if the user called SP have no rights to this table at all (I'm not talking about the FILE right).

You can check any additional conditions in the procedure (current username, hostname, day of week, etc.) and perform import or not dependent by them.

Filename, tablename, additional data can be transferred into SP as parameters and/or via user-defined variables (which existence and value can be additional checkpoint).