6.2 Управление доступом и учетными записями
- 6.2.1 Имена пользователей и пароли учетных записей
- 6.2.2 Предоставление привилегий MySQL
- 6.2.3 Таблицы предоставления прав
- 6.2.4 Указание имен учетных записей
- 6.2.5 Управление доступом, этап 1: Проверка подключения
- 6.2.6 Управление доступом, этап 2: Проверка запроса
- 6.2.7 Добавление учетных записей, назначение привилегий и удаление учетных записей
- 6.2.8 Зарезервированные учетные записи
- 6.2.9 Время вступления в силу изменений привилегий
- 6.2.10 Назначение паролей учетных записей
- 6.2.11 Управление паролями
- 6.2.12 Обработка истекших паролей сервером
- 6.2.13 Подключаемая аутентификация
- 6.2.14 Пользователи-прокси
- 6.2.15 Блокировка учетных записей
- 6.2.16 Установка лимитов ресурсов учетной записи
- 6.2.17 Устранение неполадок при подключении к MySQL
- 6.2.18 Аудит активности учетных записей на основе SQL
MySQL позволяет создавать учетные записи, которые разрешают клиентам подключаться к серверу и получать доступ к данным, управляемым сервером. Основная функция системы привилегий MySQL заключается в аутентификации пользователя, подключающегося с указанного хоста, и присвоении этому пользователю привилегий на базе данных, таких как SELECT, INSERT, UPDATE и DELETE. Дополнительные возможности включают возможность предоставления привилегий для административных операций.
Для управления подключением пользователей, каждой учетной записи можно назначить учетные данные для аутентификации, такие как пароль. Пользовательский интерфейс для управления учетными записями MySQL состоит из SQL-команд, таких как CREATE USER, GRANT и REVOKE. См. Раздел 13.7.1, «Команды управления учетными записями».
Система привилегий MySQL гарантирует, что все пользователи могут выполнять только разрешенные им операции. Как пользователь, при подключении к серверу MySQL, ваша личность определяется хостом, с которого вы подключаетесь и именем пользователя, которое вы указываете. При отправке запросов после подключения система предоставляет привилегии в соответствии с вашей личностью и тем, что вы хотите сделать.
MySQL учитывает как имя хоста, так и имя пользователя при определении вашей личности, так как нет оснований полагать, что данное имя пользователя принадлежит одному и тому же лицу на всех хостах. Например, пользователь joe, подключающийся с office.example.com, может не совпадать с пользователем joe, подключающимся с home.example.com. MySQL обрабатывает это, позволяя вам различать пользователей на разных хостах, которые могут иметь одинаковые имена: вы можете предоставить один набор привилегий для подключений с joe с office.example.com, и другой набор привилегий для подключений с joe с home.example.com. Чтобы увидеть, какие привилегии имеет конкретная учетная запись, используйте оператор SHOW GRANTS. Например:
SHOW GRANTS FOR 'joe'@'office.example.com';
SHOW GRANTS FOR 'joe'@'home.example.com';
Внутренне сервер хранит информацию о привилегиях в таблицах предоставления прав системы баз данных mysql. Сервер MySQL считывает содержимое этих таблиц в память при запуске и основывает решения по управлению доступом на копиях таблиц предоставления прав в оперативной памяти.
Управление доступом MySQL включает два этапа, когда вы запускаете клиентскую программу, которая подключается к серверу:
Этап 1: Сервер принимает или отклоняет подключение на основе вашей личности и возможности подтвердить вашу личность, предоставив правильный пароль.
Этап 2: Если подключение установлено, сервер проверяет каждый ваш запрос, чтобы определить, есть ли у вас достаточные привилегии для его выполнения. Например, если вы пытаетесь выбрать строки из таблицы в базе данных или удалить таблицу из базы данных, сервер проверяет, имеете ли вы привилегию SELECT для таблицы или привилегию DROP для базы данных.
Более подробное описание того, что происходит на каждом этапе, см. в разделе 6.2.5, «Управление доступом, этап 1: Проверка подключения» и разделе 6.2.6, «Управление доступом, этап 2: Проверка запроса». Помощь в диагностике проблем, связанных с привилегиями, см. в разделе 6.2.17, «Устранение неполадок при подключении к MySQL».
Если ваши привилегии изменяются (самим вами или кем-то другим) во время подключения, эти изменения не обязательно вступают в силу немедленно для следующего запроса. Подробнее о условиях, при которых сервер перезагружает таблицы предоставления прав, см. в разделе 6.2.9, «Время вступления в силу изменений привилегий».
Есть некоторые вещи, которые нельзя сделать с помощью системы привилегий MySQL:
Вы не можете явно указать, что данному пользователю должен быть запрещен доступ. То есть вы не можете явно сопоставить пользователя и затем отклонить подключение.
Вы не можете указать, что пользователь имеет привилегии для создания или удаления таблиц в базе данных, но не для создания или удаления самой базы данных.
Пароль применяется глобально к учетной записи. Вы не можете связать пароль с конкретным объектом, таким как база данных, таблица или процедура.
© 2025 Oracle
Licensed under the GPLv2 License.