Spec-Zone.ru › MySQL 9.2

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 решает эту проблему, позволяя вам различать пользователей на разных хостах, имеющих одинаковое имя: вы можете предоставить один набор привилегий для подключений с хоста office.example.com, и другой набор привилегий для подключений с хоста 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-9.2-en/access-control.html

Spec-Zone.ru

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