База данных Creating MySQL и пользователь без пароля

[115719]Попробуйте этот сценарий:

2
10.05.2014, 17:16
1 ответ

Вы хотите, чтобы пользователь unix и пользователь mysql, которых использует ваша команда, имели как можно меньше привилегий доступа, но при этом позволяли делать то, что вы хотите. Похоже, что обе ваши идеи дают больше привилегий доступа, чем нужно. Лучше, чтобы у командного пользователя mysql:

  1. был только доступ CREATE или просто любой доступ, который им нужен (ограничивает то, что ваша команда может делать, до минимума). Вы предоставляете пользователю mysql доступ с помощью оператора GRANT.
  2. хранить имя пользователя/пароль в файле ~/my.cnf с доступом на чтение только для владельца (не ограничивает вашу команду больше, но не дает другим увидеть логин, если они увидят скрипт).

Вышеописанное легко сделать, и это большое улучшение.

Лучшей идеей, но более трудоемкой, было бы не разрешать пользователю команды доступ к созданию баз данных, а просто поместить запросы на создание сайтов в некоторую очередь, которую другой пользовательский скрипт, контролируемый только вами (и имеющий только необходимый доступ), будет регулярно обрабатывать для создания сайтов. Очередь может быть файлом, каждая строка которого является запросом, каталогом, каждый файл которого является запросом, или таблицей базы данных, каждая запись которой является запросом. Это зависит от того, насколько сильно вы хотите защитить свою систему.

В общем, вы должны использовать пользователей unix и mysql, которые не имеют такого доступа, как root. Я создаю для себя рабочего пользователя mysql, который может создавать и удалять базы данных и выполнять только те операции, которые я регулярно использую. Я использую root или пользователя с аналогичными привилегиями, только если мне нужно настроить другого пользователя, чтобы предоставить ему привилегии доступа. В сценарии я делаю пользователя настолько ограниченным, насколько это возможно, чтобы ограничить ущерб, если все пойдет не так.

0
27.01.2020, 23:01

Теги

Похожие вопросы