Минимальные разрешения для пользователя, чтобы выполнить mysqldump?

26

Я хочу начать планировать удаленные cron mysqldump, и я бы предпочел использовать специальный аккаунт для этих целей. Я хочу предоставить этому пользователю минимальные разрешения для получения полного дампа, но я не уверен, что лучший способ это сделать.

Это так же просто, как

grant SELECT on *.* to '$username'@'backuphost' identified by 'password'; 

или мне не хватает лучшего способа?

Мэтт Симмонс
источник

Ответы:

24

Я полагаю, что пользователю просто необходимо выбрать права доступа для таблиц, для которых необходимо выполнить резервное копирование.

Изменить: Этот парень говорит, чтобы назначить разрешение "Блокировка таблиц", что имеет смысл.

Майк
источник
Это все еще действительный ответ в 2017 году?
Kyslik
11

Также вам нужен SHOW_VIEW, если в вашей БД есть представления.

Натан Френд
источник
5

Для тех, кто интересуется, вот точная команда:

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
спорщик
источник
5

Похоже, вам тоже нужен RELOAD. Так:

GRANT SELECT, LOCK TABLES, SHOW VIEW, RELOAD ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Венц Петков
источник
1

И вам нужно СОБЫТИЕ, если вы хотите сбросить СОБЫТИЯ тоже.

И вам нужен TRIGGER, если вы тоже хотите сбросить TRIGGER. (несмотря на то, что написано в руководстве!)

Ианний
источник