PHPAdmin'ы

PHPAdmin'ы

Администрирование баз данных всегда считалось достаточно сложной задачей. Стремление сделать этот процесс более простым и эффективным привело к созданию специализированных программных инструментов различного плана, в том числе позволяющих управлять базами данных, созданных в некоторых популярных СУБД с помощью web-интерфейса. О некоторых представителях этого семейства и пойдет речь в данной статье.

Сегодня на рынке присутствует достаточное количество СУБД самого различного класса — от сравнительно простых до очень сложных и мощных решений. Кроме коммерческих продуктов, которые могут быть весьма и весьма дорогостоящими, существуют и свободно распространяемые СУБД, которые во многих областях успешно конкурируют со своими коммерческими собратьями. Среди подобных СУБД наиболее известны PostgreSQL и, конечно, MySQL. Благодаря довольно удачному балансу между быстродействием, функциональностью и трудоемкостью развертывания и администрирования, а также сравнительной простоте разработки приложений на его базе данный пакет стал популярным выбором в области web-технологий.

Разработка web-приложений, взаимодействующих с базами данных, может вестись на многих языках программирования. Нередко для этих целей используется язык PHP. Пакеты администрирования баз данных через Web, написанные на PHP, не заставили себя долго ждать. Сейчас существует целая группа скриптов с названиями типа "PhpЧего-нибудьAdmin", где "чего-нибудь" — название поддерживаемой СУБД. Давайте познакомимся с некоторыми представителями данного семейства.
Начнем с наиболее известного скрипта PhpMyAdmin. Данный пакет работает совместно с MySQL; последняя на сегодня стабильная версия — PhpMyAdmin 2.5.4. Распространяется PhpMyAdmin по условиям GNU/GPL. Взять его можно по адресу http://www.phpmyadmin.net/home_page/ или на sourceforge ( http://sourceforge.net/projects/phpmyadmin/ ). "Послужной список" у пакета весьма солидный: PhpMyAdmin включается в состав многих программных продуктов.
По сути своей phpMyAdmin представляет собой набор готовых скриптов, написанных на языке PHP и позволяющих организовать полноценное, в том числе удаленное, взаимодействие с базами данных MySQL, используя стандартные способы, но в гораздо более удобной форме.
Системные требования к web-серверу у PhpMyAdmin следующие: наличие PHP от 3.0.8 с поддержкой MySQL и включенным GD (лучше GD2), MySQL 3.21 и выше.
Работать можно как с отдельными базами данных, так и с MySQL-сервером в целом. Первый вариант представляется более предпочтительным и реальным, поскольку для своего функционирования PhpMy-Admin требует пароль суперпользователя. Начнем с того, что такой пароль ни один админ, находящийся в трезвом уме и здравой памяти, просто так никому сообщать не станет. Даже если мы сами являемся администраторами MySQL, лучше все делать по правилам. Поэтому вариант с заведением отдельного пользователя с доступом к определенным базам данных становится штатным режимом работы.

Все работы по настройке PhpMyAdmin производятся с использованием файла config. inc.php. Туда предстоит внести некоторые изменения, необходимые для дальнейшей работы. Этот файл состоит из нескольких секций.
Первая содержит наиболее общие настройки — путь к каталогу, в котором находится phpMyAdmin (данный параметр может быть установлен автоматически). Теперь стоит отыскать строку $cfg['Servers'] [$i]['host'] string, которая отвечает за имя вашего сервера MySQL. По умолчанию там указано значение localhost.
Существует несколько способов идентификации пользователей системы, базирующихся на использовании cookie, HTTP или же config. Последний метод заключается в явном указании логина и пароля (директивы $cfg['Servers'][$i]['user'] и $cfg ['Servers'][$i]['password']) в конфигурационном файле системы PhpMyAdmin. Это самый простой и самый неудачный с точки зрения безопасности способ.
Для многопользовательского окружения настоятельно рекомендуются методы, основанные на HTTP и cookie, которые позволяют разграничить полномочия нескольких пользователей, при этом каждый пользователь "видит" только предназначенные для него базы данных. Метод HTTP поддерживается только PHP, работающим как модуль Apache. Он позволяет регистрироваться обычным для MySQL способом. Cookie — зашифрованные логин и пароль хранятся во временном cookie-файле. Для работы в таком режиме в браузере должна быть включена поддержка соответствующей технологии.

Названные способы также не гарантируют полной безопасности, так как пароли, если не предпринимать дополнительных действий, передаются простым текстом. Для того, чтобы работать в таких режимах, необходимо создать так называемого controluser, имеющего права SELECT для всех колонок, кроме Password таблицы mysql.user, mysql.db (все) и mysql.tables_priv (все, кроме Grantor и Timestamp). Затем в конфигурационном файле config.inc.php3 прописываются значения $cfg['Servers'][$i]['controluser']& $cfg['Servers'][$i]['controlpass'] settings. В документации к пакету приведены листинги SQL-запросов, реализующих эту задачу на MySQL различных версий. После создания controluser создаются "обычные" пользователи со своими настройками. При этом значения директив $cfg['Servers'] не заполняются.
После этой секции идет группа настроек, определяющих такие параметры, как запросы на подтверждение удаления баз данных и таблиц, и некоторые другие. Если вам чем-то не угодил предлагаемый разработчиками стиль оформления phpMyAdmin, можно изменить его в соответствии со своим вкусом, манипулируя значениями в секции Customization & design.
Для того чтобы в полной мере задействовать все возможности PhpMyAdmin, потребуется создать несколько служебных таблиц. Это можно сделать с помощью файла create_tables.sql.

После своей установки PhpMyAdmin предоставляет нам все необходимые функции: работа с несколькими серверами, управление полномочиями пользователей, создание и редактирование объектов — баз данных, таблиц и полей, наполнение их данными из текстовых файлов, работа с дампами и экспорт данных, поиск по БД и многое другое. Конечно, все вышеперечисленные операции можно выполнить и с помощью командной строки и клиента MySQL, однако использование PhpMyAdmin существенно снижает требования к уровню познаний в SQL и позволяет избежать ненужных синтаксических ошибок и просто опечаток при формировании запросов. Да и визуальное представление информации о базе данных, предлагаемое рассматриваемым пакетом, способно серьезно облегчить жизнь многим людям, не привыкшим к работе из командной строки.
Интерфейс программы построен с помощью фреймов. В левом представлен список всех имеющихся на данном сервере баз данных MySQL. После выбора базы там выводится перечень ее таблиц. Внизу располагается Окно запроса, которое предоставляет доступ к таким функциям, как импорт текстовых файлов, работа с SQL и просмотр истории выполненных SQL-запросов. Справа будут открываться связанные с выбранным объектом формы. Кроме этого, нам предлагается несколько вкладок, на которых сгруппированы опции, относящиеся к определенному аспекту администрирования базы данных или же иного объекта.
На первой странице сгруппированы ссылки на разделы, относящиеся к системе в целом: состояние, системные параметры, процессы и привилегии, относящиеся к серверу MySQL. Здесь же определяется язык интерфейса PhpMyAdmin. Полезными являются ссылки на официальные сайты с документацией по определенным аспектам использования некоторых функций программы.

Набор вкладок в основном остается неизменным при обращении к объектам разного уровня, но настройки, само собой, будут относиться только к выбранному объекту. Так, на уровне базы данных доступны следующие разделы:
• Структура — структура объекта: если мы находимся на уровне базы данных, то это список ее таблиц, если на уровне таблицы — список полей. Кроме просмотра сведений, нам доступны и некоторые базовые операции с объектом.
• SQL — выполнение произвольного SQL-запроса, который можно набрать вручную или же загрузить из файла.
• Экспорт — экспорт дампа БД в различные форматы. Это позволяет получить точную копию базы данных на другом сервере. Доступны различные опции. Подробности, как и в предыдущих случаях, можно посмотреть в документации.
• Искать — поиск по базе данных — как на простое совпадение, так и с использованием регулярных выражений.
• Запрос по примеру — развернутый поиск по набору параметров.
• Уничтожить — удаление объекта без права на обжалование.

На уровне таблицы значение пунктов в основном сохраняется, но добавляются вкладки Выбрать и Вставить.
В заключение стоит добавить, что посмотреть и самостоятельно попробовать пакет в работе можно по адресу http://phpmyadmin.sourceforge.net/phpMyAdmin/ . В наше распоряжение поступит новейшая версия PhpMyAdmin 2.5.5, находящаяся в стадии доработки.

Готовый web-интерфейс для базы данных не является исключительной прерогативой MySQL. Подобные пакеты существуют и для работы с другими СУБД. По сути, можно говорить о целом семействе достаточно близких продуктов, написанных на PHP и предназначенных для облегчения администрирования баз данных через Web. Так, например, существуют скрипты PhpPgAdmin, PhpOracleAdmin и PhpSybase-Admin. О поддерживаемых СУБД можно догадаться по названиям. Давайте остановимся на PhpPgAdmin, разработанном для СУБД PostgreSQL.
Данная разработка изначально базировалась на PhpMy-Admin. Даже внешне это родство было особенно заметно в PhpPgAdmin версии 2.х — интерфейс программ практически не отличался. Сохранив основную идею PhpMyAdmin, PhpPgAdmin обзавелся и значительным количеством специфичных добавок. С выходом PhpPgAdmin 3 в программу была добавлена поддержка возможностей, появившихся в PostgreSQL 7.3.
PhpPgAdmin также позволяет администрировать несколько серверов, работать с полномочиями пользователей, управлять базами данных и таблицами, выполнять сложные SQL-запросы. Пакет поддерживает различные языки интерфейса, в том числе русский. Сайт проекта — http://phppgadmin.sourceforge.net/ .
Установка phpPgAdmin не представляет особой сложности, необходимо только помнить о включении в браузере поддержки cookies и о том, что по умолчанию для доступа к базе данных пароль не используется — последнее необходимо исправить чем быстрее, тем лучше. Это актуально в том случае, когда мы сами являемся администраторами PostgreSQL. Настройки пакета хранятся в файле config.inc.php, который находится в подкаталоге conf. Он весьма лаконичен и содержит хорошие подсказки для каждой из доступных опций, так что разобраться в его содержании не составит проблемы. Подробно останавливаться на описании работы с PhpPgAdmin мы не будем: при необходимости можно обратиться к документации или технической поддержке разработчика. Попробовать тестовый PhpPgAdmin версии 3 в деле можно на http://phppgadmin.kattare.com/phppgadmin3/ . На мой взгляд, это наилучший способ предварительного знакомства с пакетом.
Востребованность подобных пакетов нашла свое выражение в том, что, кроме названных СУБД, phpAdmin'ы написаны, например, и для таких систем, как Sybase и Oracle. PhpSybaseAdmin представляет собой доработку PhpMyAdmin, которая дает возможность работать с Sybase. Скачать его можно хотя бы здесь: http://www.woweb.ru/goto.fcg?id=1048966584&a=load . Страница PhpOracleAdmin находится по адресу http://phporacleadmin.org/ . Их установка и настройка принципиально не отличаются от аналогичных процессов, рассмотренных выше, имеющиеся особенности, по большому счету, обусловлены спецификой рабочих СУБД.
Можно отыскать и другие инструменты, решающие названные задачи, но phpAd-min'ы заслуженно остаются самым, наверное, популярным решением.

Алексей Кутовенко,
alteridem@tut.by







Компьютерная газета. Статья была опубликована в номере 01 за 2004 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета