5. Настройка доступа из Planner к базе данных

5.1. Настройка базы данных Postgresql для использования с Planner

Осторожно

Поддержка базы данных пока находится на предварительной стадии технического тестирования и требует понимания Postgresql и настроек баз данных. Кроме этого, для доступа к схеме базы данных также необходимы исходные коды приложения Planner.

Приложение Planner может сохранять проекты в базе данных PostgreSQL. Чтобы воспользоваться этой функцией, необходимо установить и настроить PostgreSQL на прием данных проекта. В данном тексте приведен пример шагов, которые необходимо проделать для этого. Для получения дополнительной информации об администрировании и использовании PostgreSQL обратитесь к документации по PostgreSQL, доступной на сайте PostgreSQL. Документация на PostgreSQL содержит инструкции по установке из исходных кодов. Также на сайте доступны файлы RPM, если этот метод предпочтительнее.

Вначале надо зарегистрироваться как root, и скопировать файл database.sql в директорию /tmp. Этот файл будет использован на последнем этапе процесса, но лучше скопировать его заранее, а не разыскивать позже. Подразумевая, что директория для Planner расположена в корневой директории, выполните следующее действие:

root# cp planner/docs/sql/database−0.13.sql /tmp

Если вы используете Red Hat и установили пакеты PostgreSQL при установке системы, то кластер базы данных и учетная запись по умолчанию уже установлены. Кластер базы данных будет расположен в /var/lib/pgsql/data, а учетная запись по умолчанию будет называться postgres.

Если учетная запись по умолчанию не создана, создайте учетную запись postgres с домашней директорией /var/lib/pgsql.

Создайте кластер базы данных путем подключения к учетной записи postgres и выполнения команды initdb:

root# su − postgres
bash$ initdb −D data

Затем стартуйте сервер баз данных:

bash$ pg_ctl −D data −l logfile start

Создайте обычного (не по умолчанию) пользователя путем подключения к учетной записи postgres и выполнением команды createuser (тут надо использовать имя вашей учетной записи – kurt – это автор документа):

root# su − postgres
bash$ createuser
Enter name of user to add: kurt
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER

..This will allow you to execute commands from your own account rather than use the default account. ..

Это позволит вам исполнять команды под своей собственной учетной записью, а не под учетной записью по умолчанию.

Примечание

Начиная с версии v0.13, приложение Planner может создавать при необходимости базы данных в момент сохранения проекта, так что вам больше не обязательно производить описанные ниже в этом разделе шаги вручную.

Теперь вы можете создать базу данных и группу из своей собственной учетной записи:

kurt# createdb −U kurt plannerdb
CREATE DATABASE
kurt# echo ’create group planner with user kurt;’ | psql −e −U kurt −d plannerdb
create group planner with user kurt;
CREATE GROUP

И завершающая команда построит таблицы, которые требуются для сохранения информации проектов в базе данных`plannerdb`. Файл database.sql находится в дистрибутиве Planner в поддиректории docs/sql.

kurt# cat /tmp/database.sql | psql −e −U kurt −d plannerdb

При выполнении этой команды будет множество сообщений. Когда выполнение будет завершено, вам надо вернуться и просмотреть сообщения, проверяя на наличие сообщений об ошибках (ищите строки, которые начинаются со слова ERROR). Если таких строк нет, это означает, что все таблицы успешно созданы.

На этом – все. Теперь у вас есть возможность сохранять проекты и открывать их, используя базу данных PostgreSQL.

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

kurt# dropdb plannerdb
kurt# echo ’DROP GROUP planner;’ | psql −e −U kurt −d plannerdb

5.2. Настройка удаленного соединения с базой данных Postgresql

Теперь, когда база данных postgresql создана, требуется сделать ее доступной, с тем, чтобы пользователи приложения Planner могли получить к ней доступ со своих машин. В данном разделе будут описаны основные шаги для обеспечения доступа в других машин вашей сети в доверенной среде. Для настройки более защищенного соединения, изучите документацию по PostgreSQL, доступную на сайте PostgreSQL, особенно раздел, озаглавленный “Client Authentication”.

Первым делом надо найти, где расположены файлы конфигурации, которые необходимо изменить. Это файлы postgresql.conf и pg_hba.conf, которые, в соответствии с документацией PostgreSQL, должны располагаться в поддиректории /usr/local/pgsql/data/, но в дистрибутивах Red Hat и Fedora Core они находятся в /var/lib/pgsql/data/. Если вы не сумели их найти, используйте команду locate.

root# locate postgresql.conf
/var/lib/pgsql/data/postgresql.conf

Теперь необходимо сообщить PostgreSQL, что соединения по TCP/IP разрешены. Подключитесь как root, и измените файл postgresql.conf следующим образом: измените значение tcpip_socket на true, и раскомментируйте строку при необходимости. Затем сохраните файл.

Затем надо разрешить PostgreSQL соединения с IP адресов вашей локальной сети путем добавления строки host в файл pg_hba.conf:

# TYPE   DATABASE  USER  IP−ADDRESS   IP−MASK             METHOD
  local  all       all   ident                            sameuser
  host   all       all   192.168.1.0  255.255.255.0       trust

Эта строка разрешает всем машинам с IP адресами в диапазоне от 192.168.1.1 до 192.168.1.254 получать доступ к любой базе данных PostgreSQL на сервере. Измените IP адреса и маску в соответствии с настройками для вашей локальной сети. Подробности и помощь при необходимости вы можете получить у администратора вашей локальной сети.

В завершение перезапустите сервис PostgreSQL:

bash$ pg_ctl −D data −l logfile restart

Вы должны получить возможность открывать и сохранять проекты Planner с других машин в вашей локальной сети путем указания имени хоста или IP адреса в поле Server в диалоговом окне приложения Planner Open from или Save to Database.

Предупреждение

Еще раз, весьма рекомендуется изучить документацию на PostgreSQL, раздел Client Authentication, чтобы полностью понять уровни безопасности, которые можно установить для удовлетворения ваших требований. Уровни доверия и безопасности, приведенные а данном примере, не подходят для большинства реальных производственных сред.