ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Привилегия GRANT


28-12-2009

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 и может на­значить такие же права другим пользователям.
Привилегия GRANT
Пользователь davidolocalhost уже может зайти на сервер MySQL и "поделиться" своими правами.
Привилегия GRANT
Привилегия GRANT теперь может быть использована и в обратном направлении, для чего следует использовать параметр GRANT OPTION со стандартной командой REVOKE.
Листинг 14.38.
mysql> REVOKE GRANT OPTION ON inventory.* FROM david@localhost;
Пользователь davidolocalhost больше не может предоставлять привилегии другим пользователям, что подтверждается таблицей user и результатом работы команды GRANT.
Привилегия 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.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Как обращаться с командами grand и revoke Все о MySQL. Использование команд insert, update и delete