От автора: я бы вам советовал быть внимательнее с привилегиями. Один мой знакомый, который обладает в своей квартире правами администратора, наделил жену «привилегией» ограничения доступа к холодильнику. В итоге уже второй месяц сидит на диете и питается только овощами. Поэтому даже перед тем, как добавить пользователя в MySQL, хорошо подумайте!
Тех, кому доверяем!
Но все-таки есть на свете люди, которым можно доверять. И конечно, это не жена и не теща :). Давайте научимся сегодня добавлять учетные записи в MySQL и наделять их определенными привилегиями.
Это можно делать как через командную строку, так и через программные оболочки. Для начала рассмотрим легкий вариант. Воспользуемся для добавления нового пользователя программой phpMyAdmin. Но для начала давайте сделаем маленький экскурс в систему учетных записей, реализованную в СУБД.
Выше всех в иерархии стоит пользователь с учетной записью root. Изначально эта учетка поставляется с пустым значением пароля. Администратор (root) может в MySQL добавить пользователя, наделить его определенными правами, а также лишить привилегий.
Система привилегий реализована не только на сервере СУБД, но и на уровне баз. Можно наделить пользователя доступом к определенной БД, а также разрешить ему выполнять только определенные операции с «хранилищем». Например, запретить вставлять, удалять и обновлять данные, но разрешить делать выборки из таблиц. Но все это легче познается в деле, поэтому приступим.
Добавление учеток через phpMyAdmin
Откройте приложение, вверху перейдите по вкладке «Пользователи». После этого отобразится таблица «Обзор учетных записей». В ней указаны все учетные записи, которые существуют на экземпляре сервера, а также краткая информация об их привилегиях.
Чтобы добавить новую учетную запись, нужно нажать на ссылку «Добавить пользователя», которая расположена ниже таблицы. После чего система приложения выведет специальное диалоговое окно «Добавить пользователя».
В самом верхнем разделе («Информация учетной записи») следует задать имя нового пользователя, установить и подтвердить пароль. Также можно получить случайное значение пароля, которое будет автоматически подставлено в поля. Для этого нужно нажать кнопку «Генерировать».
Если прокрутить немного вниз, то станут доступными для редактирования глобальные привилегии, которыми можно наделить создаваемого пользователя. На снимке видно, что все привилегии разделены на несколько категорий: «Данные», «Структура» и «Администрирование». Перед тем, как добавить пользователя в MySQL ,ознакомьтесь с ними и отметьте нужные.
Для создания учетки нажмите внизу диалогового окна кнопку «Добавить пользователя». Теперь посмотрим на результат наших действий. Снова вернитесь к таблице «Обзор учетных записей» и ознакомьтесь с ее содержанием. Как видите, на сервере была создана новая учетка с заданным нами именем.
Добавляем нового пользователя БД
Через phpMyAdmin можно заниматься администрированием ролей не только глобально, но и на уровне отдельных БД. Чтобы в MySQL добавить пользователя к базе, в списке слева выберите нужную. Затем перейдите через пункт меню «Привилегии», где в таблице отобразятся все пользователи, которые имеют доступ к этой базе. Чтобы создать новую учетку БД, нажмите на ссылку «Добавить пользователя», которая расположена немного ниже (под таблицей).
После чего появится знакомый нам уже диалог «Добавить пользователя». Заполняем все поля, как и в предыдущем примере. Наделим leha2 глобальными привилегиями на базу world – пусть что хочет, то и делает с этим миром :). И нажимаем внизу «Добавить пользователя».
Контроль возможностей созданных юзеров
Разберемся, что может созданным нами последний «Леха». Переходим в командную строку. Входим на сервер и выполним выборку из базы, для которой в MySQL добавили пользователя: Z:\usr\local\mysql-5.5\bin\mysql.exe -u leha2 -p123
1 |
SELECT * FROM `world`.`countrylanguage` WHERE `CountryCode` = 'ABW'; |
Теперь попробуем под этой учеткой (leha2) попасть в другую базу, и тоже сделать из нее выборку. Например, вот из этой БД:
1 |
SELECT * FROM `db1`.`animal`; |
Но в ответ получаем от MySQL «в тык», поскольку используемая учетка обладает правами только на базу world.
Но это еще не все возможности администрирования привилегий. Можно в MySQL добавить пользователя с правами только на просмотр. Для этого редактируется таблица прав существующей учетной записи или создается новая.
Снова заходим на вкладку «Привилегии». В таблице пользователей возле нужной учетки жмем «Редактирование привилегий». Затем в появившемся окне диалога выключаем все привилегии кроме select. Таким образом пользователь сможет лишь просматривать таблицы или делать из них выборки с помощью SQL-команды SELECT.
Создание юзера через консоль
Давайте научимся, как добавить пользователя в MySQL через консоль. Для этого нам нужно зайти на сервер БД с правами администратора. Затем с помощью команды CREATE создать нового юзера и задать ему пароль:
1 |
CREATE USER 'verter'@'localhost' IDENTIFIED BY '12345'; |
Теперь снова зайдем в программную оболочку и глянем, появился ли созданный нами «робот» в таблице «Обзор учетных записей».
Как видите, verter стал пользователем нашего сервера MySQL. Но он вообще не имеет никаких прав (как и любой робот). Так неэтично по отношению к братьям нашим «железным», поэтому снабдим его всеми привилегиями на любую из баз. Например, world:
1 |
GRANT ALL PRIVILEGES ON `world`.* TO 'verter'@'localhost'; |
Чтобы проверить привилегии «робота из советского будущего», проведем испытание его возможностей. Зайдем под его учетной записью на сервер и сделаем выборку из базы:
Мы успешно в MySQL добавили пользователя к базе. И напоследок посоветовал бы не раздавать привилегии «направо и налево»… Извините, но мне пора бежать, иначе жена опять без ужина оставит. До скорой встречи!