Как установить PostgreSQL на Debian 9

Установить PostgreSQL на Debian 9

PostgreSQL, часто называемая просто Postgres, — это объектно-реляционная система управления базами данных общего назначения с открытым исходным кодом. PostgreSQL обладает множеством расширенных функций, таких как онлайн-резервное копирование, восстановление на определенный момент времени, вложенные транзакции, SQL- и JSON-запросы, управление параллельными версиями (MVCC), асинхронная репликация и многое другое.

В этом руководстве мы покажем вам, как установить PostgreSQL в Debian 9, а также изучим основы базового администрирования баз данных.

Предпосылки

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

Установка PostgreSQL

На момент написания этой статьи последней версией PostgreSQL, доступной в репозиториях Debian, была PostgreSQL версии 9.6.

Чтобы установить PostgreSQL на сервер Debian, выполните следующие действия:

  1. Начните с обновления локального индекса пакетов:

     sudo apt update
  2. Установите сервер PostgreSQL и дополнительный пакет PostgreSQL, который предоставляет дополнительные функции для базы данных PostgreSQL:

     sudo apt install postgresql postgresql-contrib
  3. После завершения установки служба PostgreSQL запустится автоматически. Для проверки установки подключимся к серверу базы данных PostgreSQL с помощью утилиты psql и выведем версию сервера :

     sudo -u postgres psql -c "SELECT version();"

    Вывод будет выглядеть так:

     version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

Psql — интерактивная терминальная программа, позволяющая взаимодействовать с сервером PostgreSQL.

Роли и методы аутентификации PostgreSQL

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

PostgreSQL поддерживает ряд методов аутентификации . Наиболее часто используемые из них:

  • Доверие. При использовании этого метода роль может подключаться без пароля, если соблюдены критерии, определенные в pg_hba.conf .
  • Пароль — роль может подключаться по паролю. Пароли могут храниться в формате scram-sha-256 md5 и password (открытым текстом).
  • Ident — этот метод поддерживается только для соединений TCP/IP. Он работает, получая имя пользователя операционной системы клиента с возможностью сопоставления имени пользователя.
  • Peer — то же, что и Ident, но поддерживается только для локальных подключений.

Аутентификация клиента PostgreSQL определяется в файле конфигурации pg_hba.conf . По умолчанию для локальных подключений PostgreSQL использует метод аутентификации на основе одноранговой сети.

Пользователь postgres создаётся автоматически при установке PostgreSQL. Он является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root в MySQL.

Чтобы войти на сервер PostgreSQL как пользователь postgres, вам сначала нужно переключиться на пользователя postgres, после чего вы сможете получить доступ к командной строке PostgreSQL с помощью утилиты psql :

 sudo su - postgres psql

Отсюда вы можете взаимодействовать с вашим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

 q

Для доступа к командной строке PostgreSQL без смены пользователя можно использовать команду sudo :

 sudo -u postgres psql

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

Создание роли и базы данных PostgreSQL

Вы можете создавать новые роли из командной строки с помощью команды createuser . Создавать новые роли могут только суперпользователи и роли с привилегией CREATEROLE .

В следующем примере мы создадим новую роль с именем john для базы данных с именем johndb и предоставим привилегии для базы данных.

  1. Создать новую роль PostgreSQL

    Следующая команда создаст новую роль с именем «john»:

     sudo su - postgres -c "createuser john"
  2. Создать новую базу данных PostgreSQL

    Создайте новую базу данных с именем «johndb» с помощью команды createdb :

     sudo su - postgres -c "createdb johndb"
  3. Предоставить привилегии

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

     sudo -u postgres psql

    и выполните следующий запрос:

     GRANT ALL PRIVILEGES ON DATABASE johndb TO john ;

Включить удаленный доступ к серверу PostgreSQL

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 . Чтобы включить удалённый доступ к серверу PostgreSQL, откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в раздел « CONNECTIONS AND AUTHENTICATION .

 sudo vim /etc/postgresql/9.6/main/postgresql.conf

/etc/postgresql/9.6/main/postgresql.conf

 #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

сохраните файл и перезапустите службу PostgreSQL с помощью:

 sudo service postgresql restart

Проверьте изменения с помощью утилиты ss :

 ss -nlt | grep 5432
 LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:5432 [::]:*

Как видно из приведенного выше вывода, сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).

Последний шаг — настроить сервер для приема удаленных подключений, отредактировав файл pg_hba.conf .

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

/etc/postgresql/9.6/main/pg_hba.conf

 # TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Заключение

Вы узнали, как установить и настроить PostgreSQL на сервере Debian 9. Дополнительную информацию по этой теме см. в документации PostgreSQL .

Если у вас есть вопросы, пожалуйста, оставьте комментарий ниже.

База данных Debian PostgreSQL Не используете Debian 9?
Выберите другую ОС:
центос 7 центос 8 дебиан 10 убунту 18.04 убунту 20.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *