Администратор может разрешить пользователю подключаться как с определенного компьютера, так и с различных компьютеров. В первом случае, если точно известно, что пользователи будут подключаться только со своих компьютеров, можно предоставить им такой доступ с помощью следующих операторов:
GRANT ALL ON samp_db.* TO boris@localhost 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 и mах@%. Это самый простой и, в то же время, самый незащищенный способ создать пользователя.
В случае необходимости можно также разрешить пользователю подключаться с ограниченного числа компьютеров. Так, чтобы пользователь mаrу мог подключаться с компьютеров домена snake.net, достаточно воспользоваться спецификатором %.snake.net:
GRANT ALL ON samp_db.* TO mary@%.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 ardis@192.168.128.% IDENTIFIED BY "snow" GRANT ALL ON samp_db.* TO rex@192.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"