Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 14 Следующий »


Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с подключенным расширенным (extended) репозиторием
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) с подключенным расширенным (extended) репозиторием

Аннотация

В данной статье представлена инструкция по установке и первичной настройке СУБД PostgreSQL на Astra Linux Special Edition x.7 с подключенным расширенным (extended) репозиторием (далее - ОС). На момент написания данной статьи в составе Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступны следующие версии СУБД PostgreSQL:

  • версия 11.10-astra.se5 - в основном репозитории (на установочном диске);
  • версия 11.10-astra.se13 - базовом репозитории;
  • версия 11.12-astra.ce5 - в компоненте astra-ce расширенного репозитория.

При установке СУБД PostgreSQL из компонента astra-ce расширенного защищенная версия СУБД, доработанная для взаимодействия с КСЗ Astra Linux Special Edition будет заменена на стандартную версию СУБД..
Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования.

Установка пакетов

  1. Опционально: Для установки стандартной версии подключить базовый или расширенный репозиторий и переключить ОС в состояние совместимости (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования);

  2. Обновить список пакетов:

    sudo apt update

  3. Опционально: установить актуальные обновления:

    sudo apt dist-upgrade

  4. Проверить доступные версии:

    apt policy postgresql11

  5. Установить пакет postgresql-11 старшей доступной версии:

    sudo apt install postgresql-11

  6. Убедиться, что служба postgresql запустилась:

    systemctl status postgresql

    ● postgresql.service - PostgreSQL RDBMS
       Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
       Active: active (exited) since Fri 2021-09-10 12:48:20 MSK; 1min 26s ago
    Main PID: 4338 (code=exited, status=0/SUCCESS)
       Tasks: 0 (limit: 4637)
       Memory: 0B
       CGroup: /system.slice/postgresql.service

Первичная настройка СУБД

  1. Выполнить вход в сессию служебного пользователя postgres:

    sudo su - postgres
    Работая в сессии служебного пользователя postgres:

    1. Установить пароль администратора СУБД:

      psql -c "alter user postgres with password '<указать_пароль>'"

      • Вместо текста <пароль> указать устанавливаемый пароль;

      • Пароль заключается в одинарные кавычки;

      • Вся команда заключается в двойные кавычки.

    2. Завершить работу в сессии служебного пользователя postgres:

      exit

  2. Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf проверить и установить параметр listen_addresses:
    1. Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:

      listen_addresses = '*'
    2. Допустимые значения:
      1. Служба postgresql подключена ко всем сетевым интерфейсам IPv4:

        listen_addresses = '0.0.0.0'
      2. Служба postgresql подключена ко всем сетевым интерфейсам IPv6:

        listen_addresses = '::'
      3. Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:

        listen_addresses = '192.168.1.2,10.0.02'
      4. Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
  3. Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:

    sudo systemctl restart postgresql

  4. Проверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:


    ss -tunelp | grep uid:`id -u postgres`

    tcp     LISTEN   0        1024             0.0.0.0:5432           0.0.0.0:*      uid:107 ino:32947 sk:5 <->
    tcp     LISTEN   0        1024                [::]:5432              [::]:*      uid:107 ino:32948 sk:9 v6only:1 <->                        
    Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);

  5. Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
    1. Для сетевого экрана ufw:

      sudo ufw allow 5432/tcp

    2. Для сетевого экрана firewalld:

      sudo firewall-cmd --add-service=postgresql --zone=internal --permanent

Первичное тестирование работоспособности СУБД

  1. Выполнить вход в сессию служебного пользователя postgres:

    sudo su - postgres
    Работая в сессии служебного пользователя postgres:

    1. Добавить тестового пользователя СУБД test_user1:

      createuser test_user1

    2. Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:

      createdb test_db -O test_user1

    3. Установить пароль тестового пользователя:

      psql -c "alter user test_user1 with password '<указать_пароль>'"

    4. Подключиться к созданной тестовой базе данных и войти в сессию СУБД:

      psql test_db

      psql (11.12 (Debian 11.12-astra.ce5))
      Введите "help", чтобы получить справку.
      test_db=# 

      Дальнейшие команды выполняются в сессии СУБД:

      1. Создать таблицу и добавить в нее данные:

        create table test_table ( id int,first_name text, last_name text );

        CREATE TABLE

      2. Добавить в таблицу данные:

        insert into test_table (id,first_name,last_name) values (2,'Иван','Иванов');

        INSERT 0 1

      3. Вывести табличные данные:

        select * from test_table;

         id | first_name | last_name
        ----+------------+-----------
          1 | Иван       | Иванов
        (1 строка)

      4. Выйти из сессии СУБД:

        exit

    5. Удалить тестовую базу данных:

      dropdb test_db

    6. Завершить работу в сессии служебного пользователя postgres:

      exit

  • Нет меток