Minimum permissions for a user to perform a mysqldump?
I want to start scheduling remote mysqldump crons, and I'd prefer to use a special account for that purposes. I want to grant that user the minimum permissions for getting a full dump, but I'm not sure the best way to go about that.
Is it as simple as
grant SELECT on *.* to '$username'@'backuphost' identified by 'password';
or am I missing a better way?
Solution 1:
I believe the user just needs select permissions on the tables to be backed up.
Edit: This guy says to assign the "lock tables" permission too, which makes sense.
Solution 2:
Also you need SHOW_VIEW, if there are views in your DB.
Solution 3:
For those wondering, here's the exact command:
GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';