Создание нового пользователя MySQL с привилегиями
В этой короткой заметке пойдет речь о том, как создать нового пользователя в СУБД MySQL и дать ему привилегии на определенную БД.
Для начала необходимо подключиться к MySQL от рутового пользователя или любого другого, который имеет права CREATE USER и GRANT:
mysql -uroot -ppassword
Создание пользователя осуществляется следующей командой:
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_password';
Здесь user_name - имя нового пользователя, localhost - хост с которого разрешено подключаться (если указать %, то коннект будет доступен с любого IP), user_password - пароль нового пользователя.
Пользователь создан, но пока что он ничего не может. Необходимо дать ему доступ к БД:
GRANT ALL PRIVILEGES ON `user_db_name`.* TO 'user_name'@'localhost';
Данная команда дает пользователю user_name работающему через localhost все привилегии для работы с БД user_db_name.* показывает, что доступ разрешен ко всем таблицам. Вместо ALL PRIVILEGES можно задать только определенные права. Список привилегий на официальном сайте mysql.com.
Также можно разрешить пользователю доступ к группе баз данных попадающих под определенную маску. Например:
GRANT ALL PRIVILEGES ON `db_prefix_%`.* TO 'user_name'@'localhost';
Теперь пользователь имеет разрешение на доступ ко всем базам название которых начинается с db_prefix_.
Итак, финальным штрихом будет сброс КЭШа пользователей базы данных:
FLUSH PRIVILEGES;
Вот так просто и незатейливо можно создать нового пользователя в СУБД MySQL и дать ему определенные права на БД.
