Spec-Zone.ru › MySQL 8.4

8.2 Управление доступом и учетными записями

  • 8.2.1 Имена пользователей и пароли учетных записей
  • 8.2.2 Предоставленные привилегии MySQL
  • 8.2.3 Таблицы предоставления привилегий
  • 8.2.4 Указание имён учетных записей
  • 8.2.5 Указание имён ролей
  • 8.2.6 Управление доступом, этап 1: Проверка подключения
  • 8.2.7 Управление доступом, этап 2: Проверка запроса
  • 8.2.8 Добавление учетных записей, назначение привилегий и удаление учетных записей
  • 8.2.9 Зарезервированные учетные записи
  • 8.2.10 Использование ролей
  • 8.2.11 Категории учетных записей
  • 8.2.12 Ограничение привилегий с помощью частичных аннулирований
  • 8.2.13 Когда изменения привилегий вступят в силу
  • 8.2.14 Назначение паролей учетных записей
  • 8.2.15 Управление паролями
  • 8.2.16 Обработка истекших паролей сервером
  • 8.2.17 Подключаемая аутентификация
  • 8.2.18 Многофакторная аутентификация
  • 8.2.19 Пользователи-прокси
  • 8.2.20 Блокировка учетных записей
  • 8.2.21 Установка ограничений ресурсов учетной записи
  • 8.2.22 Устранение неполадок при подключении к MySQL
  • 8.2.23 Аудит активности учетных записей на основе SQL

MySQL позволяет создавать учетные записи, которые разрешают клиентам подключаться к серверу и получать доступ к данным, управляемым сервером. Основной функцией системы привилегий MySQL является аутентификация пользователя, подключающегося с указанного хоста, и присвоение этому пользователю привилегий на базе данных, таких как SELECT, INSERT, UPDATE и DELETE. Дополнительные функции включают возможность предоставления привилегий для административных операций.

Для управления подключением пользователей каждой учетной записи можно назначить учетные данные для аутентификации, такие как пароль. Интерфейс для работы с учетными записями MySQL состоит из SQL-команд, таких как CREATE USER, GRANT и REVOKE. См. Раздел 15.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 для базы данных.

Более подробное описание того, что происходит на каждом этапе, см. в Разделе 8.2.6, «Управление доступом, этап 1: Проверка подключения» и Разделе 8.2.7, «Управление доступом, этап 2: Проверка запроса». Для помощи в диагностике проблем, связанных с привилегиями, см. Раздел 8.2.22, «Устранение неполадок при подключении к MySQL».

Если ваши привилегии изменяются (либо вами, либо кем-то другим) во время подключения, эти изменения не обязательно вступают в силу немедленно для следующего запроса, который вы выполните. Подробности о условиях, при которых сервер перезагружает таблицы предоставления привилегий, см. в Разделе 8.2.13, «Когда изменения привилегий вступят в силу».

Есть некоторые вещи, которые нельзя сделать с помощью системы привилегий MySQL:

  • Вы не можете явно указать, что данному пользователю должен быть запрещен доступ. То есть вы не можете явно сопоставить пользователя и затем отклонить подключение.

  • Вы не можете указать, что пользователь имеет привилегии для создания или удаления таблиц в базе данных, но не для создания или удаления самой базы данных.

  • Пароль применяется глобально к учетной записи. Вы не можете связать пароль с конкретным объектом, таким как база данных, таблица или процедура.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/access-control.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API