Чтобы РНР-сценарии могли подключиться к MySQL, потребуется настроить соответствующего пользователя. В этом случае также можно применить принцип минимально необходимых полномочий. При этом следует задаться вопросом:"Какае действия должны иметь право выполнять сценарии?"
В большинстве случаев сценариям понадобится проводить над строками таблиц только операции SELECT, INSERT, DELETE и UPDATE. Можно поступить следующим образом:
mysql > grant select, insert, delete, update
->on books.*
->to serg identified by 'book123';
Понятно, что для большей безопасности следует выбрать более надежный пароль.
Если вы используете службу веб-хостинга, можно предположить, что вам будут предоставлены другие полномочия для созданной для вас базы данных. Как правило, вам будут предоставлены одни и те же имя_пользователя и пароль для работы из командной строки или веб Adnin PMA (настройка таблиц и т.д.) и для подключения к MySQL из веб-сценариев (выдача запросов к базе данных). Это катострофически снижает безопастность. Пользователя с таким уровнам полномочий можно установить следующим образом:
mysql > grant select, insert, update, delete, index, alter, create, drop
-> on books.*
-> to serg identified by 'book123';
Теперь можно приступить к настройке второго пользователя.
Покинуть монитор MySQL можно, набрав quit. После этого имеет смысл войти в систему в качестве пользователя Веб и убедиться, что все работает должным образом. Если выданный ранее оператор GRANT выполнился, но доступ оказывается невозможным, это значит, что вы не удалили анонимных пользователей во время инсталяции MySQL. Войдите в систему вновь как root и удалите учетные записи анонимных пользователей в соответствии с инструкциями. После этого вход в систему пользователя Веб станет возможным.
Если вы дошли до этой стадии, то должны находиться в системе под учетной записью MySQL уровня пользователя и быть готовыми к тестированию примера кода независимо от того, кто его установил — вы или администратор веб-сервера.
После входа в систему сначала потребуется указать базу данных, с которой необходимо работать. Это можно сделать следующим образом:
mysql > use dbname;
где dbname — имя соответствующей базы данных.
Можно и не вводить команду use, но тогда база данных должна быть указана во время входа в систему:
mysql > -D dbname -h hostname -u username -p
В этом примере мы будем работать с базой данных books:
mysql > use books;
После ввода этой команды MySQL должен вывести следующую строку:
mysql> use books;
Database changed
База данных изменена
Если перед началом работы база данных не была выбрана, MySQL выведет сообщение об ошибке:
ERROR 1046: No Database Selected
ОШИБКА 1046: Не выбрана база данных