аватар Автор: Сергей Касаткин | 21 августа 2013 11:23

Уроки / MySQL /

Урок 3. Права (привилегии) в MySQL

В данном уроке несмотря на Ваше долгое ожидание мы всё ещё продолжим изучать теоретическую часть и основные понятия в MySQL. В MySQL для того, чтобы начать работать с данными, таблицами нужно создать пользователя этой базы данных и указать для него логин, пароль и соответственно базу данных, права к которой он получает. Затем ему нужно дать соответствующие права пользования базой данных.

Права (привилегии) в MySQL делятся на три вида:

1. управление и изменение данных в БД
2. управление структурой БД
3. администрирование (управление пользовательскими правами и тд)

Теперь остановимся на них подобнее.

Управление и изменение данных в БД


Нижеприведённые права и привилегии дают возможность пользователю БД редактировать содержимое Базы Данных, будьте внимательны, особенно с последними тремя пунктами!

SELECT - даёт возможность выбрать какие-либо данные из таблиц в БД.
INSERT - позволяет добавить одну или несколько новых записей в уже существующую таблицу в БД.
UPDATE - разрешается обновить (редактировать) данные в таблице.
DELETE - возможность удалить записи из уже существующей таблицы в БД.
FILE - позволяется выбирать, считывать и записывать данные в файлах.


Управление и изменение структуры в БД


Для этого пользователю даются уже другие права (привилегии) в MySQL. То есть, если Вы хотите, чтобы человек под другим пользователем НЕ мог редактировать структуру таблицы - добавлять поля в таблицу или удалять их, то соответствующие права ему не даются и наоборот.

CREATE - данное право позволяет пользователю создавать не только новые таблицы, но и даже новые Базы Данных.
ALTER - очень важная привилегия, которая позволяет переименовывать таблицы, вставлять новые и редактировать старые поля, а также удалять их.
INDEX - право, позволяющее по определённому условию удалять уже существующие поля.
DROP - привилегия, позволяющая удалять либо базы данных целиком, либо таблицы. В зависимости от того, что укажете.
Привилегия DROP очень важна. Если злоумышленнику или хакеру попадут данные пользователя (лог и пасс соответственно), у которого есть данное право, то данные из БД могут быть беспрепятственно удалены. Будьте внимательны при распределении прав пользователей!

CREATE TEMPORARY TABLES - данное право даёт возможность создать так называемые временные таблицы в БД. Они очень часто используются во время работы сессий. По их завершению они автоматически удаляются.


Администрирование в БД


Самое главное в иерархии прав - администрирование Базой Данных.

GRANT - возможность создавать нового пользователя БД. Внимание! Права нового пользователя не могут быть шире прав создающего. Поэтому если новому пользователю нужен расширенный вариант, то это должен делать администратор.
SUPER - данное право разрешает использовать команду kill (отключение другого пользователя от соединения с БД).
PROCESS - право, которое даёт возможность увидеть processlist (все соединения других пользователей с БД).
RELOAD - возможность работать с файлами журналов (открывать, закрывать), а также считывать права пользователей.
SHUTDOWN - возможность запуска команды "shutdown" (прекращение работы сервера, то есть выключение).
SHOW DATABASES - просмотр всех БД.
REFERENCES - ещё не доступная привилегия. (документации и описания не нашёл, буду признателен, если кто отзовётся в комментах).
LOCK TABLES - возможность заблокировать таблицу при соединении определённого пользователя.
EXECUTE - возможность запуска хранимых процедур.
REPLICATION CLIENT - интересная привилегия, которая позволяет отследить м5естонахождение главного (master) и ведомых (slaves) серверов.
REPLICATION SLAVE - право, позволяющее читать ведомым журнала ведущего сервера.

Внимание, ниже приведены специальные привилегии в работе с MySQL:

MAX QUERIES PER HOUR - указано максимальное количество запросов за час, которое может отправить определённый пользователь.
MAX UPDATES PER HOUR - указано максимальное количество команд для создания, редактирования и удаления данных в таблицах или БД определённым пользователем или группой в течение часа.
MAX CONNECTIONS PER HOUR - как понятно из перевода - максимальное количество подключений пользователя к БД за час.

Если Вы не хотите никак ограничивать специальные привилегии, то достаточно указать значение 0.

В качестве вывода


Как Вы успели заметить, прав (привилегий) достаточно много. Но не переживайте, всё это запоминать не надо! Во-первых, администраторы БД почти всех сайтов практически не сталкиваются с распределением прав, так как на 99% сайтов есть только одна БД и только один пользователь, а во-вторых, если всё-таки нужно просмотреть права, то страницу можно просто добавить в закладки и каждый раз смотреть описание прав.

Проще говоря, если Вы новичок, то это так и останется для Вас справочной информацией. Всё указанное выше актуально для создателей крупных порталов, форумов и социальных сетей.

Спасибо за внимание! Урок нужный, как минимум, для ознакомления!
 



Похожие статьи


Комментарии к статье (vk.com)