Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 7)
Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД PostgreSQL на Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 7). (далее - ОС). В состав ОС включена СУБД PostgreSQL версии 11.
Установка пакетов
- Опционально: подключить расширенный репозиторий пакетов (XR): Репозитории Astra Linux Special Edition 1.7: особенности подключения и использования;
Обновить список пакетов:
sudo apt updateОпционально: установить актуальное оперативное обновление:
sudo apt dist-upgradeПроверить доступные версии:
apt cache postgresql11Установить пакет postgresql-11 нужной версии:
sudo apt install postgresql-11илиУбедиться, что служба 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
Первичная настройка СУБД
Выполнить вход в сессию служебного пользователя postgres:
sudo su - postgresРаботая в сессии служебного пользователя postgres:Установить пароль администратора СУБД:
psql -c "alter user postgres with password '<указать_пароль>'"Вместо текста <пароль> указать устанавливаемый пароль;
Пароль заключается в одинарные кавычки;
Вся команда заключается в двойные кавычки.
Завершить работу в сессии служебного пользователя postgres:
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.02'
- Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:
sudo systemctl restart postgresql- Проверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:
ss -tunelp | grep uid:`id -u postgres`Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);
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 <-> - Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
Для сетевого экрана ufw:
sudo ufw allow 5432/tcpДля сетевого экрана firewalld:
sudo firewall-cmd --add-service=postgresql --zone=internal --permanent
Первичное тестирование работоспособности СУБД
Выполнить вход в сессию служебного пользователя postgres:
sudo su - postgresРаботая в сессии служебного пользователя postgres:Добавить тестового пользователя СУБД test_user1:
createuser test_user1Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:
createdb test_db -O test_user1Установить пароль тестового пользователя:
psql -c "alter user test_user1 with password '<указать_пароль>'"Подключиться к созданной тестовой базе данных и войти в сессию СУБД:
psql test_db
psql (11.12 (Debian 11.12-astra.ce5))
Введите "help", чтобы получить справку.
test_db=#
Дальнейшие команды выполняются в сессии СУБД:Создать таблицу и добавить в нее данные:
create table test_table ( id int,first_name text, last_name text );
CREATE TABLEДобавить в таблицу данные:
insert into test_table (id,first_name,last_name) values (2,'Иван','Иванов');
INSERT 0 1Вывести табличные данные:
select * from test_table;id | first_name | last_name
----+------------+-----------
1 | Иван | Иванов
(1 строка)
Выйти из сессии СУБД:
exit
Удалить тестовую базу данных:
dropdb test_dbЗавершить работу в сессии служебного пользователя postgres:
exit