Spec-Zone .ru
спецификации, руководства, описания, API
|
Первичная функция системы полномочия 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, "Причины Ошибок Доступа запрещен".