Программирование >>  Программный интерфейс приложений 

1 ... 154 155 156 [ 157 ] 158 159 160 ... 264


SHUTDOWN Завершение работы сервера

all Все операции. Аналог -all privileges

usage Полное отсутствие привилегий

Спецификаторы привилегий, входящие в первую группу этой таблицы, применяются к базам данных, таблицам и столбцам. Спецификаторы второй фуппы определяют административные привилегии. Как правило, они используются довольно редко, поскольку позволяют пользователю влиять на работу сервера. (Не каждому пользователю, например, необходима привилегия shutdown.) В третью фуппу входят два отдельных спецификатора; спецификатор all предоставляет все привилегии , а usage означает полное отсутствие привилегий . В последнем случае создается новый пользователь, не обладающий никакими правами.

columns (столбцы). Столбцы, к которым применяются определенные привилегии. Этот параметр необязателен и используется только при установке привилегий для столбцов. Имена нескольких столбцов отделяются друг от друга запятыми.

what (что). Уровень применения привилегий. Привилегии могут быть глобальными (применяемыми ко всем базам данных и их таблицам), уровня баз данных (применяемыми ко всем таблицам определенной базы данных) или уровня таблицы. Используя оператор columns, можно определить также привилегии уровня столбца.

user (пользователь). Пользователь, которому присваиваются привилегии. В некоторых версиях MySQL необходимо указывать как имя пользователя, так и компьютер, с которого он сможет подключаться. Такой способ задания легко позволяет определить двух пользователей с одинаковым именем, но подключающихся с разных компьютеров. Возможности MySQL позволяют их различать и наделять различными правами.

Имя пользователя в некоторых версиях MySQL представляет собой имя, используемое при подключении к серверу. Оно вовсе необязательно должно быть связано с именем регисфации в ОС UNIX или Windows. Если имя пользователя MySQL не определено явным образом, клиентские программы по умолчанию используют его в качестве регисфационного имени, однако это необязательно. Не существует также каких-либо особых фебований, чтобы суперпользователь MySQL, обладающий максимальными правами, имел имя root. По желанию его можно изменить в таблицах разрещений на nobody, если для выполнения определенных операций фе-буются его полномочия.



ш password (пароль). Присвоенный пользователю пароль, который не является обязательным. Если для нового пользователя опустить выражение identified by, пароль ему присвоен не будет (что не совсем разумно с точки зрения безопасности). Если же этот оператор задается для уже существующего пользователя, введенный пароль заменит используемый до настоящего момента. Старый пароль останется неизменным, если новый не будет определен. Строка пароля, задаваемая с помощью выражения identified by, должна представлять собой буквенную строку, которую при записи зашифрует оператор grant. Поэтому не следует использовать функцию password о , применяемую с оператором set password.

Оператор with grant option является необязательным. С его помощью можно предоставить пользователю все привилегии, определенные оператором grant для других пользователей. Этот оператор можно применять для делегирования возможностей определенных категорий другим пользователям.

В именах пользователей, баз данных, таблиц и паролях, записываемых в таблицу разрешений, строчные буквы отличаются от заглавных. Регистр в именах компьютеров и столбцов таблиц не учитывается.

Чтобы определиться, какую же форму оператора grant применить, достаточно ответить на следующие вопросы.

Кто и откуда может подключаться к серверу?

Какой уровень привилегий должен иметь пользователь и на доступ к чему эти привилегии предоставляются?

Необходимо ли пользователю предоставлять административные привилегии?

Давайте попробуем ответить на эти вопросы и рассмотрим примеры оператора grant для создания учетных записей пользователей MySQL.

Кто и откуда может подключаться к серверу

Администратор может разрешить пользователю подключаться как с определенного компьютера, так и с различных компьютеров. В первом случае, если точно известно, что пользователи будут подключаться только со своих компьютеров, можно предоставить им такой доступ с помощью следующих операторов:

GRANT ALL ON samp db.* TO borisSlocalhost IDENTIFIED BY ruby GRANT ALL ON samp db.* TO fred@ares.mars.net IDENTIFIED BY quartz GRANT ALL ON samp db.* TO max@% IDENTIFIED BY diamond

Символ % заменяет все возможные значения адресов и выполняет те же функции, что и при сравнении с помощью оператора like. В предьщущем примере его можно условно заменить фразой любой компьютер . Установка символа % аналогична простому опусканию части, задающей компьютер. Другими словами, эквивалентными в данном при-



мере выступят записи max и тах@%. Это самый простой и, в то же время, самый незащищенный способ создать пользователя.

В случае необходимости можно также разрешить пользователю подключаться с ограниченного числа компьютеров. Так, чтобы пользователь тагу мог подключаться с компьютеров домена snake.net, достаточно воспользоваться спецификатором % . snake. net:

GRANT ALL ON samp db.* TO maryS%.snake.net IDENTIFIED BY topaz

Для определения компьютера можно применять не только имена, но и IP-адреса. Эти адреса можно задавать явно, либо с помощью вспомогательных символов. Кроме того, в версии MySQL 3.23 появилась возможность определять IP-адреса, задавая маску сети, устанавливая число разрядов в сетевом номере:

GRANT ALL ON samp db.* TO joe@192.168.128.3 IDENTIFIED BY water GRANT ALL ON samp db.* TO ardisg192.168.128.% IDENTIFIED BY snow GRANT ALL ON samp db.* TO rex@I92.168.128.0/17 IDENTIFIED BY ice

Первый оператор определяет только один компьютер, с которого может подключиться пользователь joe. Второй определяет набор IP-адресов для подсети класса С 192.168.128. В третьем операторе часть 192.168.128.0/17 определяет 17-разрядный сетевой номер и соответствует любому компьютеру с адресом 192.168.128 в первых 17 разрядах IP-адреса.

Если MySQL отказывается принимать определенные пользовательские значения, попробуйте заключить их в кавычки (необходимо отдельно заключать в кавычки имя пользователя и компьютера):

GRANT ALL ON samp db.president TO my friend @ boa.snake.net

Какой уровень привилегий должен иметь пользователь и на доступ к чему эти привилегии предоставляются

Администратор может предоставлять пользователям привилегии разных уровней. Наиболее мощными являются глобальные привилегии, применяемые ко всем базам данных. Так, например, чтобы предоставить пользователю ethel права суперпользователя, который может делать все, в том числе и предоставлять привилегии другим пользователям, необходимо запустить следующий оператор:

GRANT ALL ON *.* ТО ethelglocalhost IDENTIFIED BY coffee WITH GRANT OPTION

Спецификатор *. * в предложении ON можно условно заменить фразой все базы данных и все таблицы . Для повыщения безопасности подключаться пользователю ethel разрешено только с одного локального компьютера. Ограничение компьютеров, с которых может подключаться к серверу обладающий широкими правами пользователь, - весьма



1 ... 154 155 156 [ 157 ] 158 159 160 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика