#1 — MySQL : Добавление юзера


Tagged , ,

Решил открыть маленький цикл заметок по разным компьютеным направлениям. Эти заметки написаны скорее для себя нежели для сторонних читателей.
Ваяю тут один проектик и для его работы мне естесвенно понадобился MySQL. Посколько проект разрабатывается на буке, а MySQL сервер у меня поднят на домашней машине, то встал вопрос доступа моего бука к базам данных. По дефолту созданный юзер root имеет хост localhost, стало быть я не могу им пользоваться, т.к. бук имеет свой ip.
Пошарив немного в нете нашел мини статью, как создать юзвера.
Собсвенно способа как минимум 2, но я решил продемонстрировать тот, что мне показался наиболее простым и логичным.
Итак, синтаксис команды создания юзера в MySQL такой:

CREATE USER user [IDENTIFIED BY [PASSWORD] ‘password’]

Простой пример:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';

Где заместо ‘localhost’ я подставил ip моего бука, а вместо ‘user1’ имя юзера. Как видно из синтаксиса команды, пароль для юзера задавать не обязательно, т.е. можно обойтись и CREATE USER ‘user1’@’localhost’, но из соображений безопасности настоятельно рекомендую использовать пароли. Кстати привязка юзера к хосту тоже является своеобразным секурити шагом, ведь сейчас залесть под этим аккаунтом можно только с бука или отобрав ип у моего бука 🙂 .
Но это еще не все. Создав юзера, мы не назначили ему никаких прав. Этот пользователь сейчас ничего не может сделать. Для того чтобы дать ему доступ надо ввести команду:

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';

Это даст юзеру права для выборки, вставки новых, обновления сущесвующих и удаления данных, по всей базе данных. Надо заметить что создавать других юзеров или создавать новые базы и таблицы этот пользователь не может. Но все равно это как то не секурно. Можно ограничить юзера как одной базой, так и вообще одной табилей в базе данных, в которой он может существовать.
Делается это просто:

GRANT SELECT,INSERT,UPDATE,DELETE ON dbname.table1 TO 'user1'@'localhost';

Сейчас юзер может работать только с таблицей table1 в базе dbname.
Собсвенно на этом все.
P.S: Создать юзера с неограниченными правами можно и одной командой GRANT ALL ON *.* TO 'user2'@'localhost' IDENTIFIED BY 'pass1';, но это же не наш метод 😉

Мой блог находят по следующим фразам

Share:

No comments

RSS / trackback

Respond