Spec-Zone .ru
спецификации, руководства, описания, API

6.2. MySQL Access Privilege System

6.2.1. Полномочия, Обеспеченные MySQL
6.2.2. Полномочие Систем Грант Тэбльз
6.2.3. Определение Имен учетной записи
6.2.4. Управление доступом, Этап 1: Проверка Соединения
6.2.5. Управление доступом, Этап 2: Проверка Запроса
6.2.6. Когда Изменения Полномочия Вступают в силу
6.2.7. Причины Ошибок Доступа запрещен

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

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

Пользовательский интерфейс к системе полномочия MySQL состоит из SQL-операторов такой как CREATE USER, GRANT, и REVOKE. См. Раздел 13.7.1, "Операторы Ведения счетов".

Внутренне, сервер хранит информацию полномочия в таблицах предоставления mysql база данных (то есть, в базе данных называется mysql). Сервер MySQL читает содержание этих таблиц в память, когда это запускает и базирует решения контроля доступа о копиях в памяти таблиц предоставления.

Система полномочия 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 включает два этапа, когда Вы выполняете клиентскую программу, которая соединяется с сервером:

Этап 1: сервер принимает или отклоняет соединение, основанное на Ваших идентификационных данных и можно ли проверить свои идентификационные данные, предоставляя корректный пароль.

Этап 2: Предположение, что можно соединиться, сервер, проверяет каждое заявление, которое Вы делаете, чтобы определить, есть ли у Вас достаточные полномочия выполнить это. Например, если Вы пытаетесь выбрать строки из таблицы в базе данных или отбросить таблицу от базы данных, сервер проверяет, что Вы имеете SELECT полномочие для таблицы или DROP полномочие для базы данных.

Для более подробного описания того, что происходит во время каждого этапа, см. Раздел 6.2.4, "Управление доступом, Этап 1: Проверка Соединения", и Раздел 6.2.5, "Управление доступом, Этап 2: Проверка Запроса".

Если Ваши полномочия изменяются (или или кто-то еще), в то время как Вы соединяетесь, те изменения не обязательно сразу вступают в силу для следующего заявления, которое Вы делаете. Для получения дополнительной информации об условиях, при которых сервер перезагружает таблицы предоставления, см. Раздел 6.2.6, "Когда Изменения Полномочия Вступают в силу".

Для общего связанного с безопасностью совета см. Раздел 6.1, "Общие Вопросы безопасности". Для справки в диагностировании связанных с полномочием проблем см. Раздел 6.2.7, "Причины Ошибок Доступа запрещен".