Подтвердить что ты не робот

Минимальные GRANT, необходимые mysqldump для сброса полной схемы? (TRIGGER не хватает!!)

У меня есть пользователь MySQL, называемый дампом со следующими perms:

GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'

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

mysqldump -u dump -p --routines --triggers --quote-names --opt \
    --add-drop-database --databases myschema > myschema.sql

Все в порядке с выгруженным файлом, за исключением триггеров , они отсутствуют!!

Триггеры сбрасываются правильно, если я пытаюсь mysqldump с пользователем root MySQL:

mysqldump -u root -p --routines --triggers --quote-names --opt \
    --add-drop-database --databases myschema > myschema.sql

Итак, я думаю, это проблема с perms... каковы дополнительные гранты, которые мне нужен MySQL MySQL для выполнения полного дампа правильно?

4b9b3361

Ответ 1

Предполагая, что полный дамп также означает VIEW и EVENT s, вам понадобится:

GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...;
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `myschema`.* TO 'dump'@'%';

и если у вас есть VIEW, который выполняет функцию, то, к сожалению, вам также потребуется EXECUTE.

Моя собственная проблема: зачем мне нужно SELECT, если я хочу только создать дамп без данных?

Ответ 2

Я нашел дополнительный GRANT, который мне нужен!

  GRANT TRIGGER ON `myschema`.* TO 'dump'@'%'

Здесь у вас есть ссылка на официальный документ: http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_trigger

Признак TRIGGER позволяет запускать триггерные операции. У вас должна быть эта привилегия для таблицы для создания, удаления или запуска триггеров для этой таблицы.

Ответ 3

Я обнаружил, что когда-либо, если пользователь VIEW DEFINER не существует, сбрасывает сбой.

Измените его, как описано там