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