= Настройка сервера баз данных PostgreSQL в Debian = ---- <> == Введение == ---- '''PostgreSQL''' — это полнофункциональная объектно-реляционная система управления базами данных. PostgreSQL поддерживает большую часть стандартного SQL и спроектирован для использования пользовательских расширений во многих аспектах. Некоторые возможности: ACID-транзакции, внешние ключи, представления, последовательности, подзапросы, триггеры, пользовательские типы и функции, внешние объединения, контроль совместимости использования нескольких версий. Также доступны графические пользовательские интерфейсы (GUI) и привязки ко многим языкам программирования. == Установка сервера баз данных PostgreSQL в Debian == ---- Для установки базовой системы PostgreSQL и текстового клиента командной строки выполните следующую команду из оболочки shell {{{ # apt-get install postgresql postgresql-client }}} Данная команда установит много пакетных зависимостей. На системе Debian Squezze установится версия PostgreSQL 8.4.8 . Официальная документация доступна [[http://www.postgresql.org/docs/8.4/static/index.html|здесь]]. Во время установки будет несколько несложных вопросов. На большинство из них можно просто согласиться (будет выбран вариант по-умолчанию), но, тем не менее, рекомендуется читать вопросы, чтобы быть в курсе какие будут использоваться настройки PostgreSQL. Data directory Все данные базы данных будут храниться по-умолчанию в '/var/lib/postgres/data'. Data removal policy Также по-умолчанию удаление системы PostgreSQL не повлекёт за собой удаление данных (содержимое базы данных). Locale Локаль должна быть настроена на приём кодировки, которая будет использоваться в вашей системе баз данных. Выберите локаль, которая подходит именно Вам. Список доступных локалей полностью зависит от операционной системы. Если вам нужно больше локалей, то в первую очередь необходимо установить их в операционную систему. Date В качестве предпочтительного формата даты выберите European (Европейский) или US (Американский). Затем последует продолжение установки со значениями по-умолчанию некоторых параметров настройки PostgreSQL. В конце установка создаст файл настроек '/etc/postgresql/postgresql.conf', который в дальнейшем нужно редактировать, изменяя значение параметров настройки PostgreSQL so let's decompose Alowing local users to login is done by editing the /etc/postgresql/pg_hba.conf file (a complete documentation of this file is available here). There, you have to retrieve a series of lines like the following ones == Создание пользователей для вашей базы данных == По-умолчанию авторизоваться в вашей только что установленней системе базы данных как 'root' можно через пользователя операционной системы 'postgres', выполните {{{ # su # su postgres # psql template1 # template1=# \q # exit }}} Намного удобнее авторизовываться через вашего пользователя операционной системы или через любого другого пользователя, которого вы выберете. Есть несколько способов предоставления доступа для различных пользователей операционной системы, мы разрешим локальным пользователям операционной системы авторизовываться путём редактирования файла '/etc/postgresql/pg_hba.conf' (полное описание документации на этот файл можно посмотреть [[http://www.postgresql.org/docs/8.4/static/client-authentication.html|здесь]]). В этом файле вы найдёте несколько строчек наподобие таких {{{ local all postgres ident sameuser # # All other connections by UNIX sockets local all all ident sameuser # # All IPv4 connections from localhost host all all 127.0.0.1 255.255.255.255 md5 # All IPv6 localhost connections host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ident sameuser host all all ::ffff:127.0.0.1/128 ident sameuser # # reject all other connection attempts host all all 0.0.0.0 0.0.0.0 reject }}} This file has limited accesses but we will come back here later.Now what we have told PostgreSQL is that all users on the local machine should be able to access all databases, using their UNIX login and passwords. You need to restart your database to take new changes effect Этот файл устанавливает ограниченный доступ, но мы возвратимся к нему позже. Несколько строк выше сообщают PostgreSQL, что все пользователи на локальной машине, могут получать доступ ко всем базам данных, используя их локальные логин и пароль в операционной системе. Для вступления изменений в силу вам потребуется перезагрузить базу данных {{{ # /etc/init.d/postgresql restart }}} Now the problem is that you have authorized users to log into the database, but they will only be able to log in if they also exist in the database. So you need to create accounts with their usernames. This is done by issuing the createuser command as user postgres as follows Теперь проблема заключается в том, что вы дали разрешение пользователям входить в базу данных, но они смогут авторизоваться только, если они также существуют в базе данных. Так что вам теперь нужно создать учётные записи с именами локальных пользователей в операционной системе. Это делается через пользовательскую команду postgres "createuser" {{{ # su postgres # createuser firstuser # exit }}} Команда 'createuser' спросит вас - пользователь может создавать базы данных или создавать новых пользователей. Ответ утвердительный.