#php #mysql #security #cron #backup
#php #mysql #Безопасность #cron #резервное копирование
Вопрос:
Если бы я должен был создать резервную копию базы данных MySQL с помощью mysqldump и вызвать ее с помощью PHP ‘system’ или аналогичной функции, я должен был бы включить пароль в строку, чтобы автоматизировать это.
Затем я могу (например) либо вызвать функцию php вручную (т. е. по ссылке), либо запустить ее как задание cron.
Мое беспокойство:
-
Учитывая, что база данных находится на Ubuntu (сервере) или другом Linux, не будет ли это плохой идеей, поскольку следующий пользователь, вошедший на сервер, распознает пароль базы данных?
-
Очевидно, мы не говорим о пароле 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, я не думаю, что конфигурационные файлы будут доступны всем. Спасибо за мысль!