Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

ДВИЖОК, РАБОТАЮЩИЙ С БД - ставим и настраиваем MySQL

fenix (f3x@land.ru)

Спецвыпуск Xakep, номер #028, стр. 028-048-4


#altair>mysql -u root

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Вход с паролем осуществляется с ключом -p:

Altair#>mysql -u root -p

Enter password: *******

Вот и все. Если пароль был случайно забыт, чтобы его задать по новой, тебе придется стереть файлы mysql.frm mysql.MYI и mysql.MYD из папки с базами данных, затем запустить скрипт mysql_install_db и повторить все по новой.

Хорошо было бы добавить пользователей базы данных вместе с их правами и паролями.

Для этого будем использовать выражение grant. Можно опять вносить прямые поправки в таблицы mysql, но это будет слишком неудобно. Итак:

mysql>grant all privileges on *.* to admin@localhost identified by 'some_password' with grant option;

Это создаст пользователя admin, который сможет делать все что захочет со всеми базами данных и вообще mysql-ем, подключаясь только с localhost и указывая пароль some_password.

Чтобы admin мог подключаться с других хостов, необходимо набрать следующее:

mysql>grant all privileges on *.* to admin@"%" identified by ' some_password' with grant option;

*.* означает, к каким базам данных и таблицам имеет доступ admin. Обозначения делаются следующим образом: "база.таблица".

Для создания продвинутого пользователя, ограниченного определенными запросами, необходимо использовать такое выражение:

mysql>grant select,insert,update,delete,index,create,drop on *.* to poweruser@localhost identified by 'user_password';

Такой пользователь сможет использовать все основные запросы для данных в таблицах, а также создавать и удалять базы данных. Однако он не сможет выключать, перезапускать демон mysql (серверную часть), смотреть на список процессов, не будет иметь доступ к файлам сервера, а также сможет подключаться к базе данных только с localhost'а и указывая свой пароль.

Вот все возможные опции для прав:

select, insert, update, delete - одноименные запросы операций с данными и записями;

create, drop - создание и удаление баз данных и таблиц;

grant, alter - совершение операций с привилегиями;

index - операции с индексами в таблицах;

references - работа со ссылками в базах данных и таблицах;

reload, shutdown, process - управление сервером mysql. Перезапустить, убить и посмотреть все подключения соответственно;

file - позволяет загонять в базу данных любой читабельный файл с сервера.

Для многопользовательского сервера можно посоветовать делать пользователей, способных только изменять данные одной базы данных, так сказать, из соображений безопасности.

ВСПОМОГАТЕЛЬНЫЕ ИНСТРУМЕНТЫ

Ты, наверное, думаешь сейчас, как же это все неудобно и старомодно без графического интерфейса - ведь на дворе XXI век. Не переживай, такие средства есть, и мы рассмотрим два самых распространенных. Для Win32 я настоятельно рекомендую mysqlfront, данную софтину можно слить здесь: http://www.aiut.com.pl/pub/mysqlfront/. Очень удобный клиент для работы с mysql, прост в установке и использовании, куча настраиваемых параметров, возможно сохранение выполняемых запросов, экспорт/импорт и т. д. Самое главное в этой тулзе - это минимум ручной работы. Под *nix (KDE, Gnome) наверняка также существуют аналогичные клиенты, но я их не встречал, а если честно - и не пытался искать, привык все делать ручками. Пользователями всякого рода юнихов нет необходимости впадать в панику, так как существует web-панель для работы с mysql - phpMyAdmin, то есть данное решение платформонезависимое и может использоваться на любой операционке с корректно установленным веб-серваком, на любом хостинге и т. д.

Назад на стр. 028-048-3  Содержание  Вперед на стр. 028-048-5