Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Создание нового пользователя 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 и дать ему определенные права на БД.

  • 2015-01-31 17:08:42