Как залогиниться в MySQL?
Итак, чтобы залогиниться в MySQL под определенным пользователем, нужно набрать в командной строке…
…или из cmd.exe
Первый пользователь, о котором Вы можете знать – тот, которого Вы создавали при установке MySQL. Как правило это пользователь под именем root… Когда введете первую строку, система Вам предложит ввести пароль… Если ввёдете правильно окажетесь в консоли mysql;
Как узнать какие пользователи существуют?
Для начала – я выбрал базу данных mysql – она создается автоматически при инсталляции программы-сервера MySQL. В этой БД содержится таблица user, в которой огромное количество полей, но для простоты я вывел – имя пользователя, хост и пароль.
Как создать нового пользователя?
Для этого нужно выполнить 2 действия
1) собственно создать командой
CREATE USER 'Myuser'@'localhost' IDENTIFIED BY 'password';
2) дать пользователю привилегии, права, например так
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
1 2 3 4 5 6 7 |
<strong>Обратите внимание! </strong>Если мы пишем 'My<span class="highlight">user</span>'@'localhost', то подключение возможно только с локального хоста. Если мы пишем 'My<span class="highlight">user'</span>@'%', то пользователь может присоединяться откуда угодно. Также, если мы напишем только <strong>GRANT ALL PRIVILEGES ON * . * TO '<span class="highlight">newuser</span>'@'localhost'identified by password; </strong>... то пользователь у нас всё равно создастся, поэтому можно миновать Create User...более подродно <a href="http://www.mysql.ru/docs/man/Adding_users.html">здесь</a>. Звездочка до точки это все базы, после точки - все таблицы в базах. То есть этот пользователь получит все возможные права на все базы и таблицы. <a href="http://digital-flame.ru/wp-content/uploads/2015/08/59.jpg"><img class="aligncenter size-full wp-image-324" src="http://digital-flame.ru/wp-content/uploads/2015/08/59.jpg" alt="5" width="670" height="110" /> </a>Посмотрим отобразился ли он в таблице пользователей? |
Как видно – да! MyUser в списке пользователей. Теперь попробуем залогиниться под этим пользователем, перед этим напечатав в консоли mysql.exe команду quit;
Успешно вошли !!!
P.S… Если привилегии предоставляются пользователю, которого не существует, то этот пользователь создается, поэтому создавать пользователя можно сразу с команды GRANT…
Как удалить пользователя?
Для этого вылогинимся из под myuser и залогинимся под root…
Для того, чтобы удалить пользователя, наберем команду drop user username; в консоли…
Обратите, внимание, что сначала я написал drop user myuser и это не сработало, так как более точное определение у нас drop user ‘myuser’@’localhost’; последняя инструкция сработала на ура!
Как изменить пароль у пользователя ?
Как дать ограниченные привилегии пользователю?
(полный список привелегий на сайте MySQL.ru)
Создадим нового пользователя через инструкцию GRANT (инструкция работает таким образом, что если пользователя с таким именем нет, то он создается, поэтому можно миновать инструкцию CREATE)
Итак, у нас ограниченные привилегии для пользователя, он может только делать выборку, редактировать данные, вставлять новые, удалять их. Только в БД sql_groupby и только в таблице Sales. Кроме того, такого пользователя у нас не было, но он создался по команде Grant.
Как отобрать ограниченные привилегии у пользователя?
Итак, мы отобрали одну привилегию у пользователя – update. Можно отбирать не больше, чем дано привилегий, иначе ошибка.
Роли в MySQL
По поводу ролей в MySQL нашёл такую информацию на форуме… Как таковых, ролей нет в mysql, но можно поступить таким образом, цитирую…
Можно создать таблицу, куда заносятся роли и соответствующие им права, и таблицу, куда заносятся логины и присвоенные им роли. И повесить на вторую таблицу триггер, который по добавлению-изменению-удалению будет соотв. образом менять права логина.
Можно будет поэкспериментировать с этой идеей в будущих постах…