Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД PostgreSQL на Astra Linux Special Edition x.7. Установка незащищенной версии выполняет с подключенным компонентом astra-ce расширенного (extended) репозитория, установка защищенной версии выполняется без подключения этого компонента. На момент написания данной статьи в составе Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступны следующие версии СУБД PostgreSQL:
- версия 11.10-astra.se5 - защищенная версия в основном репозитории (на установочном диске);
- версия 11.10-astra.se13 - защищенная версия в основном репозитории (оперативное обновление №1);
- версия 11.12-astra.ce5 - незащищенная версия в компоненте astra-ce расширенного репозитория до оперативного обновления 1.7.2;
- версия 14+240astra4 - - незащищенная версия в компоненте astra-ce расширенного репозитория начиная с оперативного обновления 1.7.2.
Предупреждение | ||
---|---|---|
| ||
Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации. При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере). При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном или выделенном уровне МКЦ. Подробнее см. Руководство по КСЗ в составе эксплуатационной документации используемого обновления. |
Предупреждение | ||
---|---|---|
При установке СУБД PostgreSQL из компонента astra-ce расширенного репозитория защищенная версия СУБД, доработанная для взаимодействия с КСЗ Astra Linux Special Edition будет заменена на стандартную версию СУБД.. При установке незащищенной СУБД PostgreSQL версии 14 из компонента astra-ce расширенного репозитория 1.7.2 при наличии ранее установленной СУБД PostgreSQL версии 11 необходимо перед запуском нового кластера вручную удалить ранее установленные кластеры версии 11:
|
Что такое СУБД PostgreSQL
Раскрыть |
---|
Общая информацияPostgreSQL (произносится «Пост-Грэс-Кью-Эл») — свободная объектно-реляционная система управления базами данных (СУБД). PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011.
Оригинальная документация СУБД PostgreSQLДокументация на СУБД в защищенном исполнении PostgreSQL, входящую в состав Astra Linux Special Edition доступна на странице : Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7). Эксплуатационная и дополнительная документация. Оригинальная документация PostgreSQL доступна по ссылке: https://www.postgresql.org/docs/ |
Установка пакетов
- Подключить репозитории:
- основной репозиторий и актуальное оперативное обновление основного репозитория;
- только для установки незащищенной версии PostgreSQL - актуальное оперативное обновление расширенного репозитория, включая компонент astra-ce. Для установки защищенной версии подключение компонента astra-ce расширенного репозитория недопустимо.
Обновить список пакетов:
Command sudo apt update Опционально: установить актуальные обновления :
sudo apt dist-upgradeCommand (подробнее см. статью Fly-astra-update и astra-update - инструменты для установки обновлений).
Проверить доступные версии:
Command apt policy postgresql-11 Установить пакет postgresql-11 старшей доступной версии:
Command sudo apt install postgresql-11 или установить пакет postgresql-11 указанной версии:
Command sudo apt install postgresql-11=<номер_версии> Убедиться, что служба postgresql запустилась:
Command Title 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
Первичная настройка СУБД PostgreSQL
Выполнить вход в сессию служебного пользователя postgres:
Command sudo su - postgres Работая в сессии служебного пользователя postgres:
Установить пароль администратора СУБД:
Command psql -c "alter user postgres with password '<указать_пароль>'" Вместо текста <пароль> указать устанавливаемый пароль;
Пароль заключается в одинарные кавычки;
Вся команда заключается в двойные кавычки.
Завершить работу в сессии служебного пользователя postgres:
Command exit
- Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf проверить и установить параметр listen_addresses:
Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:
Блок кода listen_addresses = '*'
- Допустимые значения:
Служба postgresql подключена ко всем сетевым интерфейсам IPv4:
Блок кода listen_addresses = '0.0.0.0'
Служба postgresql подключена ко всем сетевым интерфейсам IPv6:
Блок кода listen_addresses = '::'
Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:
Блок кода listen_addresses = '192.168.1.2,10.0.0.022'
- Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:
Command sudo systemctl restart postgresql Проверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:
Command Title 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);
- Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
Для сетевого экрана ufw:
Command sudo ufw allow 5432/tcp Для сетевого экрана firewalld:
Command sudo firewall-cmd --add-service=postgresql --zone=internal --permanent
Первичное тестирование работоспособности СУБД
Выполнить вход в сессию служебного пользователя postgres:
Command sudo su - postgres Работая в сессии служебного пользователя postgres:
Добавить тестового пользователя СУБД test_user1:
Command createuser test_user1 Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:
Command createdb test_db -O test_user1 Установить пароль тестового пользователя:
Command psql -c "alter user test_user1 with password '<указать_пароль>'" Подключиться к созданной тестовой базе данных и войти в сессию СУБД:
Command Title psql test_db psql (11.12 (Debian 11.12-astra.ce5))
Введите "help", чтобы получить справку.
test_db=#
Дальнейшие команды выполняются в сессии СУБД:Создать таблицу и добавить в нее данные:
Command Title create table test_table ( id int,first_name text, last_name text ); CREATE TABLE Добавить в таблицу данные:
Command Title insert into test_table (id,first_name,last_name) values (2,'Иван','Иванов'); INSERT 0 1 Вывести табличные данные:
Command Title select * from test_table; id | first_name | last_name
----+------------+-----------
1 | Иван | Иванов
(1 строка)
Выйти из сессии СУБД:
Command exit
Удалить тестовую базу данных:
Command dropdb test_db Завершить работу в сессии служебного пользователя postgres:
Command exit