Разнообразные таблицы разрешения взаимодействуют друг с другом, реализуя тем самым всесторонние правила доступа, которые в MySQL используются при обработке запросов пользователя. Контроль доступа делится на два этапа: подключение и запрос.
■ Этап подключения. Когда пользователь подключается к серверу базы данных с узла, прежде всего MySQL проверит, есть ли доступ для данного пользователя в таблице user. Если такой доступ есть и пароль правильный, то следующим будет проверен узел, с которого производится подключение. Если тут запрета нет, и пользователь может зайти на сервер, то все в порядке.
■ Этап запроса. Если подключение установлено, то каждый последующий запрос,
адресуемый серверу (SELECT, DELETE, UPDATE и другие), подлежит всесторонней проверке, а именно: имеет ли пользователь права на данные операции? Здесь также возможны несколько вариантов доступа, например, кто-то имеет возможность выполнять операции SELECT, а кто-то может выполнять только операции INSERT или операции UPDATE, но операции DELETE для него запрещены.
В иерархии таблиц MySQL, таблица user имеет высший приоритет, далее идут таблицы db и host, а уже после них на иерархической лестнице располагаются таблицы columns_priv и tables_priv. Если работа таблицы более высокого ранга нарушается по тем или иным причинам, то система обращается к таблице низкого ранга.
Пока система "думает", позволять ли вам определенную операцию на сервере, MySQL проверяет все поля привилегий во всех трех таблицах. Просмотр начинается с таблицы user, при этом проверяется наличие у пользователя привилегии на данное действие. Если такой привилегии нет - проверяются таблицы db и host с целью определить, возможна ли такая привилегия. Только после логического анализа, MySQL разрешает или запрещает выполнение данного запроса.
Когда в MySQL поступает запрос административного характера - RELOAD, PROCESS и т.д., - система адекватно реагирует, но только после тщательной проверки таблицы user. Ни одна другая таблица не может заменить ее. Поскольку такие административные запросы могут быть применены ко всей базе данных, а не только лишь к одной таблице, то запрет или разрешение на их проведение содержится только в таблице user.
Стандартные установки
Теперь взглянем на обычные таблицы, которые всегда присутствуют в MySQL, чтобы лучше разобраться, что включено в настройки, а что нет.
Это означает следующее.
1. MySQL разрешает пользователю, который подключается с локального сервера localhost как пользователь root, полный доступ ко всем базам данных в системе.
2. Также MySQL дает возможность любому другому пользователю подключаться с локального компьютера, и предоставляет ему (а) полный доступ ко всем базам данных на Windows, и (б) к базе данных test на Unix.
3. Пользователям, которые подключаются с других серверов, в доступе будет отказано.
Как предоставить, отменить и просмотреть привилегии пользователя
Изменение таблиц разрешения в базе данных mysql предполагает наличие прав суперпользователя, имеющего полный доступ к серверу баз данных MySQL.
Итак, в первую очередь нужно убедиться, что у вас именно такой уровень доступа, и вы имеете право изменять записи в таблицах разрешения. Если вы установили сервер самостоятельно, то вы должны были вводить пароль пользователя root во время инсталляции (в главе 3, "Инсталляция и настройка MySQL" этот процесс описан детально). Если вы были внимательны и изучили инструкции по инсталляции из этой главы, то вы должны были сделать все правильно (если же вы оставили поле для ввода пароля пустым, то это огромная дыра в вашей системе защиты). А если вы таки вводите пароль, то было бы неплохо его запомнить или записать. Теперь для того чтобы проверить, являетесь ли вы пользователем, вы должны зайти на сервер как пользователь root.
Листинг 14.20.
[root@host] $ mysql -u root -p Enter password: ****
Welcome to the MySQL monitor. Commands end with ; org. mysql>
Затем необходимо убедиться в том, что имеется доступ к таблицам разрешения из базы данных mysql .
Листинг 14.21.
mysql> USE mysql; Database changed
Доступ такого уровня, как root, в основном предоставляется только администратору базы данных. Другие пользователи не могут иметь доступ такого уровня. Простой пользователь подключается к базе данных, вводя свой пароль и имя. Как мы показали в предыдущих разделах, таблицы разрешений MySQL предназначены для манипуляции настройками защиты обычных пользователей и определения уровня защиты для каждого из них.
Существует два основных пути изменения настроек доступа к таблицам. Вы можете использовать запросы ЯМД - INSERT, UPDATE и DELETE - для изменения информации в таблицах, контролирующих управление доступом. Но команды GRANT и REVOKE ничем не хуже, т.е. они тоже могут быть использованы в этих целях, причем последний метод лучше, поскольку в первом случае таблицы модифицируются напрямую и именно поэтому так поступать не рекомендуется.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Взаимодействие между таблицами разрешений
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Таблицы Db и Host | Все о MySQL. Как обращаться с командами grand и revoke |