Беспокойство по поводу резервного копирования базы данных MySQL с использованием mysqldump

#php #mysql #security #cron #backup

#php #mysql #Безопасность #cron #резервное копирование

Вопрос:

Если бы я должен был создать резервную копию базы данных MySQL с помощью mysqldump и вызвать ее с помощью PHP ‘system’ или аналогичной функции, я должен был бы включить пароль в строку, чтобы автоматизировать это.

Затем я могу (например) либо вызвать функцию php вручную (т. е. по ссылке), либо запустить ее как задание cron.

Мое беспокойство:

  1. Учитывая, что база данных находится на Ubuntu (сервере) или другом Linux, не будет ли это плохой идеей, поскольку следующий пользователь, вошедший на сервер, распознает пароль базы данных?

  2. Очевидно, мы не говорим о пароле root. Итак, вторая часть вопроса заключается в том, какие привилегии могут быть предоставлены учетной записи пользователя, которая будет использоваться только для создания резервных копий?

Спасибо, что поделились!

Комментарии:

1. Я не уверен, что это должно выполняться по ошибке сервера, поскольку мой вопрос также касается PHP. Вот почему я поместил это здесь.

2. @ChristopheD — Это кажется неправильным, кроме того, по ошибке сервера вы не получите столько ответов, сколько здесь, если вообще получите.

Ответ №1:

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

 cat passwd.txt|mysqldump -p  dump_options_here
  

Как минимум, вам понадобятся SELECT, LOCK_TABLES и, возможно, RELOAD, если вы находитесь в ситуации репликации и вам нужно очистить журналы.

Комментарии:

1. Да, это обходной путь, который, я думаю, я использую 🙂 И поскольку это ОС Linux, мы могли бы сделать это довольно легко. Спасибо!

Ответ №2:

Разве вы бы не поместили пароль БД в PHP-файл (или ini-файл) в любом случае для вашего реального приложения? Разве у вас не установлен phpmyadmin (и в его файле конфигурации вы можете видеть незашифрованные пароли)?

Комментарии:

1. Да, это тоже вариант. И пока мы придерживаемся Ubuntu / Linux, я не думаю, что конфигурационные файлы будут доступны всем. Спасибо за мысль!