Права (привилегии) пользователей в MySQL
Для работы с базами данных в MySQL необходим пользователь, наделённый такими правами. То есть при подключении к базе данных Вы должны указывать логин пользователя и его пароль, и если доступ ему открыт, то он получит определённые права. И о том, какие права могут быть у пользователя в MySQL мы и разберём в этой статье.
В MySQL существуют три группы привилегий: данные, структура, администрирование. Первая группа связана с изменением записей в таблицах, вторая группа связана с изменением структуры баз данных, а третья связана с администрированием, как бы это очевидно не звучало.
Теперь перейдём к рассмотрению каждой группы отдельно. И начнём с прав на управление данными в таблицах.
- SELECT - эта привилегия позволяет делать выборку (вытаскивание) записей из таблиц баз данных.
- INSERT - привилегия, которая необходима для добавления новых записей в таблицу.
- UPDATE - право, позволяющее обновлять записи в таблице.
- DELETE - эта привилегия позволяет удалять записи из таблицы.
- FILE - разрешает делать выборку записей и записывать данные в файл, а также считывать их оттуда.
Теперь перейдём к привилегиям пользователей MySQL, позволяющие изменять структуру таблицы и базы данных.
- CREATE - привилегия, позволяющая создавать новые базы данных, а также новые таблицы в базе данных.
- ALTER - привилегия, позволяющая переименовывать таблицы, вставлять новые поля в таблицу, удалять поля из таблицы, а также модифицировать их.
- INDEX - разрешает создавать индекс по определённому полю и удалять его. О том, что это такое и для чего нужно мы поговорим в одной из следующих статей.
- DROP - право, которое позволяет удалять либо таблицы, либо целые базы данных.
- CREATE TEMPORARY TABLES - возможность создавать временные таблицы, которые хранятся во время сессии, а после окончания сессии данная таблица автоматически удаляется.
И последняя группа привилегий - это привилегии, связанные с администрированием баз данных.
- GRANT - привилегия, которая позволяет создавать новых пользователей, а также менять права у существующих. Тут есть очень важная деталь: нельзя изменять значения привилегий, которыми сам не обладаешь. То есть если человек обладает привилегией GRANT, но не обладает привилегией SELECT, то он не может новым пользователям дать привилегию SELECT. Впрочем, это вполне логично.
- SUPER - позволяет использовать команду "kill", то есть убить поток. Поток - это текущее подключение другого пользователя к базе данных.
- PROCESS - привилегия, позволяющая выполнить команду "processlist", которая показывает список потоков.
- RELOAD - позволяет открывать и закрывать файлы журналов, а также перечитывать таблицы привилегий пользователей.
- SHUTDOWN - привилегия, позволяющая выполнить команду "shutdown", отключающая работу сервера.
- SHOW DATABASES - разрешает просматривать все существующие базы данных.
- REFERENCES - данная привилегия ещё не доступна, а только зарезервирована для использования в будущем.
- LOCK TABLES - позволяет блокировать таблицы от указанных потоков.
- EXECUTE - позволяет запускать хранимые процедуры.
- REPLICATION CLIENT - даёт право получать местонахождение ведущего (master) и ведомых (slaves) серверов.
- REPLICATION SLAVE - это привилегия, позволяющая читать ведомым журнала ведущего сервера.
И, наконец, специальные привилегии, связанные с ограничением на доступные ресурсы:
- MAX QUERIES PER HOUR - максимальное количество запросов в час, которое может отправить пользователь.
- MAX UPDATES PER HOUR - максимальное количество команд в час, которые каким-либо образом изменяют либо таблицу, либо базу данных.
- MAX CONNECTIONS PER HOUR - максимальное количество подключений в час, которое может сделать пользователь.
Если значение вышеназванных пределов равны "0", то ресурсы для пользователя не ограничены.
Как видите, привилегий достаточно много, и группа, связанная с администраторскими правами, весьма сложная, а новичок может вообще в ней потеряться. Но я спешу Вас обрадовать: для 95% сайтов, использующих MySQL, не требуется вообще настраивать каких-либо привилегий. Достаточно одного пользователя со всеми правами. Например, на этом сайте есть всего лишь один пользователь со всеми правами. И все операции с базой данных проводит только он один, а Вы, совершая определённые действия, даёте ему определённые команды.
Поэтому не стоит пугаться данного объёма информации, но принять к сведению это обязательно нужно.
-
- Михаил Русаков
Комментарии (5):
Михаил. Вот такой вопрос: Какую версию MySQL использовать и как подключить MySQL к странице? заранее благодарю вас.
Ответить
Последнюю версию использовать. MySQL можно использовать через PHP.
Ответить
Спасибо вам Михаил!!!
Ответить
Написали бы статью про подключение MySQL через PHP. Думаю многим была полезна эта информация. И огромное спасибо за ваши статьи которые мне очень и очень помогли!!
Ответить
http://myrusakov.ru/mysql-connect.html
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.