MySQL позволяет пользователям с привилегией GRANT, предоставить такие же привилегии другим пользователям. Для этого в команде GRANT предусмотрена опция WITH GRANT OPTION. Когда эта опция добавлена в команду GRANT, пользователь, к которому она применяется, получает такие же привилегии, что и остальные пользователи.
Листинг 14.35.
mysql> GRANT SELECT, DELETE, INSERT, UPDATE, CREATE, DROP, INDEX ON inventory.* TO david@localhost WITH GRANT OPTION;
Использование групповых символов
При использовании в командах GRANT и REVOKE имени узла, базы данных, групповых символов типа % и _, MySQL требует выделять данные имена кавычками. Для того чтобы создать анонимного пользователя, вместо имени пользователя используйте пустую строку ' '.
Все вручную
Когда вызывается команда GRANT для определенного пользователя, для него автоматически создается запись в таблице user, если это новый пользователь. Команда REVOKE не удаляет запись из таблицы user. Следовательно, несмотря на то, что пользователь может быть автоматически добавлен с помощью команды GRANT, автоматически удалить его с помощью команды REVOKE нельзя, тут уж придется потрудиться вручную, и сделать это можно только с помощью команды DELETE.
Пользователь davidolocalhost теперь будет иметь привилегию GRANT и может назначить такие же права другим пользователям.
Пользователь davidolocalhost уже может зайти на сервер MySQL и "поделиться" своими правами.
Привилегия GRANT теперь может быть использована и в обратном направлении, для чего следует использовать параметр GRANT OPTION со стандартной командой REVOKE.
Листинг 14.38.
mysql> REVOKE GRANT OPTION ON inventory.* FROM david@localhost;
Пользователь davidolocalhost больше не может предоставлять привилегии другим пользователям, что подтверждается таблицей user и результатом работы команды GRANT.
При назначении привилегии GRANT для пользователя, нужно быть очень аккуратным. Поскольку пользователь с разными уровнями доступа может объединить их, получив таким образом высший уровень доступа, который существенно отличается от первоначальных.
Ограничение использования ресурсов
В новой версии MySQL 4.x, появилась возможность ограничения использования конкретных пользователей ресурсов на сервере. Это стало возможным после добавления в таблицу user трех новых полей: max_questions, max_updates и max_connections, которые могут использоваться для ограничения выполнения запросов, обновлений записей или таблиц, что соответственно ограничивает количество подключений пользователей к серверу. Эти три поля будто отображают три опции в команде GRANT.
Первая из них, предложение MAX_QUERIES_PER_HOUR, ограничивает количество выполняемых запросов за час.
Листинг 14.40.
mysql> GRANT SELECT ON *.* TO sarah WITH MAX_QUERIES_PER_HOUR 5;
Предложение MAX_QUERIES_PER_HOUR контролирует сумму всех запросов за час, но запросы SELECT, INSERT, DELETE не подпадают под этот контроль. При желании еще можно ограничить количество команд UPDATE в час, что можно сделать с помощью MAX_UPDATES_PER_HOUR.
Листинг 14.41.
mysql> GRANT SELECT ON *.* TO sarah WITH MAX_UPDATES_PER_HOURS 5;
А вот количество подключений контролируется уже совсем другим предложением: MAX_CONNECTION_PER_HOUR:
Листинг 14.42.
mysql> GRANT SELECT ON *.* sarah WITH MAX_CONNECTIONS_PER_HOUR 3;
Кроме того, все вышеупомянутые предложения могут применяться вместе.
Листинг 14.43.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO supervisor WITH MAX_QUERIES_PER_HOUR 50 MAX_UPDATES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 4;
Запомните, что данные предложения не могут быть назначены только для базы данных или для таблиц, они включаются и выключаются глобально с помощью конструкции ON *.* команды GRANT. В следующем примере показано, как отреагирует MySQL, если уровень был превышен.
Листинг 14.44.
mysql> INSERT INTO customers (id, name) VALUES (2892, 'Lola J');
ERROR 1226: User 'sarah' has exceeded the 'max_questions' resource (current value: 5)
На сервере существует внутренний счетчик для всех трех ограничений. Счетчики могут быть перезагружены в любое время с помощью команды FLUSH USER_RESOURCES.
Листинг 14.45.
mysql> FLUSH USER_RESOURCES;
Query OK, 0 rows affected (0.00 sec) На заметку
Для выполнения команды FLUSH необходима привилегия RELOAD.
ТОП-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. Привилегия GRANT
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Как обращаться с командами grand и revoke | Все о MySQL. Использование команд insert, update и delete |