Эта команда удаляет из таблицы прав доступа записи, относящиеся к тестовой базе данных. Теперь отменим удаленный доступ к серверу MySQL с помощью команды SQL:
mysql> DELETE FROM user WHERE host='%';
Теперь удалим записи пользователей без имени:
mysql> DELETE FROM user WHERE User=";
Обеспечим пароль для root. Пароль должен быть надежным - хорошо, если он состоит из буквенно-цифровых символов и знаков пунктуации:
mysql> UPDATE user SET Password = PASSW0RD("jgt4»92smck") WHERE User = 'root';
Наконец, требуется обеспечить перезагрузку MySQL таблиц с правами доступа, чтобы они вступили в силу. Это достигается следующей командой SQL:
mysql> FLUSH PRIVILEGES;
Управление пользователями MySQL
Убрав лишнее после установки и сделав ее более защищенной, следует подумать о том, какие права доступа действительно нужны пользователям. Чаще всего это доступ по чтению ко всей базе данных и право записи в одну-две таблицы. Назовем этого пользователя webuser. Возможно, имеется сценарий администрирования РНР, защищенный паролем, которому нужно право чтения и записи во все таблицы базы данных; назовем соответствующего пользователя
В данном примере предполагается наличие базы данных web site с тремя таблицами - users, news и log_tbl. В таблице users хранятся данные о пользователях, зарегистрированных на веб-сайте. Таким образом, webuser должен обладать правами SELECT, INSERT и UPDATE в отношении этой таблицы. Таблица news хранит новые статьи. Новые статьи могут добавляться или изменяться только администратором, поэтому пользователю webuser нужен только доступ SELECT к этой таблице. Наконец, таблица log_tbl хранит сведения о каждом посещении сайта. Следовательно, оба пользователя должны иметь право выполнения SELECT и INSERT в этой таблице, но ни у одного из них не должно быть прав UPDATE или DELETE.
Посмотрим, как создать двух пользователей с перечисленными выше правами.
Сначала зарегистрируемся на сервере mysql:
mysql -uroot -p
Enter password: ******
Теперь надо создать двух пользователей, которым первоначально предоставим право применять SELECT ко всей базе данных веб-сайта:
mysql> GRANT SELECT ON web site.* TO webuser@localhost IDENTIFIED BY 1secure_password';
mysql> GRANT SELECT ON web site.* TO adminuser@localhost IDENTIFIED BY 'secure_password2';
Пользователю webuser необходимы также права на выполнение команд INSERT и UPDATE для таблицы users и команды INSERT для таблицы log_______________________________________________ tbl: