Команды GRANT и REVOKE описывались в предыдущем разделе, и как вы помните, являются самым эффективным способом вносить изменения в таблицы разрешений MySQL. Тем не менее, можно использовать команды INSERT, UPDATE и DELETE.
Поэтому вполне реально использовать не только команду GRANT.
Листинг 14.46.
mysql> GRANT SELECT, INSERT, UPDATE, ON recipes.* TO tom@localhost IDENTIFIED BY 'tommygun';
Но и с помощью команды INSERT можно достичь того же самого результата. Листинг 14.47.
mysql> INSERT INTO user (Host, User, Password) VALUES ('localhost', ■torn', PASSWORD ('tommygyn'));
mysql> INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Up-date_priv,
Delet_priv, Create_priv, Drop_priv) VALUES ("localhost", 'recipes', ■torn", 'Y', 'Y', 'Y', 'Y', 'N', 'N');
mysql> FLUSH PRIVILEGES;
Аналогичный результат получим при установке административного пользователя с помощью команды GRANT.
Листинг 14.48.
mysql> INSERT INTO user (Host, User, Password) VALUES ('localhost', ■torn1, PASSWORD ('tommygyn'));
mysql> INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Up-date_priv,
Delet_priv, Create_priv, Drop_priv) VALUES ('localhost', 'recipes', ■torn", 'Y', 'Y', 'Y', 'Y', 'N', 'N');
mysql> FLUSH PRIVILEGES;
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'master';
Это же можно проделать с помощью команды INSERT. Листинг 14.49.
mysql> INSERT INTO user (Host, User, Password, Select_priv, In-sert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shut-down_priv, Process_priv,
File_prive, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost', 'admin', PASSWORD('master'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
mysql> FLUSH PRIVILEGES;
Просмотр привилегий
С помощью команды SHOW GRANTS, MySQL позволяет посматривать привилегии пользователя. По имени пользователя программа выдаст все привилегии, на которые тот имеет право.
Использование команд insert, update и delete
Использование команд insert, update и delete
Совет
В версии MySQL под UNIX есть сценарий mysqlaccess, который может быть ис­пользован как генератор отчетов о правах доступа и привилегиях пользователя. Введите mysqlaccess -- howto для получения информации о работе с этой утилитой.
Перезагрузка таблиц разрешений
Назначенные командами GRANT и REVOKE привилегии активизируются немедленно (это хорошо видно из примеров в предыдущем разделе). Для того чтобы активизировать привилегии, назначенные с помощью простых запросов SQL, сервер необходимо пере­загрузить. Перезагрузка сервера может быть выполнена с помощью команды FLUSH PRIVILEGES.
Листинг 14.51.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.05 sec)
На заметку
Для выполнения команды FLUSH необходима привилегия RELOAD.
Обычно MySQL считывает информацию из таблиц один раз во время запуска. Пере­загружаются таблицы только с помощью опции mysqladmin, как показано в примере для системы UNIX. Для Windows просто используйте инсталляционный путь MySQL.
Листинг 14.52.
[rootohost]# /usr/local/mysql/bin/mysqladmin -u root reload