Информация | ||
---|---|---|
| ||
|
Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД 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, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации. При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ. |
Предупреждение | ||
---|---|---|
При установке СУБД 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 Опционально: установить актуальные обновления (подробнее см. статью Fly-astra-update и astra-update - инструменты для установки обновлений):
Command sudo apt astra-upgrade Проверить доступные версии:
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
This guide will walk you through the steps required to Install PostgreSQL 11 on Debian 10 (Buster). PostgreSQL is a powerful, highly-extensible database server written in C. It is the World’s most advanced relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
The first release of PostgreSQL 11 was on 2018-10-18 and you can check more details on the release page. Follow the few steps below to install PostgreSQL 11 on Debian 10 (Buster).
Step 1: Add PostgreSQL Repository
Start by ensuring everything is updated on your Debian 10 system.
sudo apt update
sudo apt -y upgrade
Then Import the repository signing key:
sudo apt install -y vim wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Add the repository:
RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
Step 2: Install PostgreSQL 11 on Debian 10 (Buster)
Now install PostgreSQL 11 on Debian 10 Buster by running the command below.
sudo apt update
sudo apt -y install postgresql-11
The service is usually started after installation.
● 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@deb10:~$
Первичная настройка СУБД PostgreSQL
Выполнить вход в сессию служебного пользователя postgres:
Command sudo su - postgres Работая в сессии служебного пользователя postgres:
Установить пароль администратора СУБД:
Command psql -c "alter user postgres with password '
<указать_пароль>'"
ALTER ROLE
Step 3: Enable remote access (Optional)
By default, access to PostgreSQL database server is only from localhost.
$ ss -tunelp | grep 5432
tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=15785,fd=3)) uid:111 ino:42331 sk:6 <->
Edit PostgreSQL 11 configuration file if you want to change listening address:
Вместо текста <пароль> указать устанавливаемый пароль;
Пароль заключается в одинарные кавычки;
Вся команда заключается в двойные кавычки.
Завершить работу в сессии служебного пользователя postgres:
Command exit
- Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf
Add below line under CONNECTIONS AND AUTHENTICATION section.
- проверить и установить параметр listen_addresses:
Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:
Блок кода listen_addresses = '*'
You can also specify server IP Address
- Допустимые значения:
Служба postgresql подключена ко всем сетевым интерфейсам IPv4:
Блок кода listen_addresses = '0.0.0.0'
Служба postgresql подключена ко всем сетевым интерфейсам IPv6:
Блок кода listen_addresses = '::'
Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:
Блок кода listen_addresses = '192.168.1.2,10.
0.0.2'
Restart postgresql after making a change
sudo systemctl restart postgresql
Confirm$
- Допускается использовать пустой список, тогда подключение будет возможно только через сокеты 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 <->
If you have an active UFW firewall, allow port 5432 for network connections.
Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);
- Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
Для сетевого экрана ufw:
Command sudo ufw allow 5432/tcp
Add a test database user:$
Для сетевого экрана 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
Type "help" for help.
postgres=#
-c "alter user test_user1 with password '
<указать_пароль>'
ALTER ROLE
Login to test_db database:
postgres@deb10:~$ psql -l | grep test_db
test_db | test_user1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
" Подключиться к созданной тестовой базе данных и войти в сессию СУБД:
Command Title psql test_db psql (11.
12 (Debian 11.
12-
astra.ce5))
Введите "help"
, чтобы получить справку.
test_db=#
Create a table and add some dummy data:
Дальнейшие команды выполняются в сессии СУБД:Создать таблицу и добавить в нее данные:
Command Title
create table test_table ( id int,first_name text, last_name text );
CREATE TABLE
test_db=#
Добавить в таблицу данные:
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
test_db=#
Let’s drop our test database to retain clean installation.postgres@deb10:~$ dropdb test_db
That’s all. You have successfully installed PostgreSQL 11 on Debian 10 (Buster).
строка)
Выйти из сессии СУБД:
Command exit
Удалить тестовую базу данных:
Command dropdb test_db Завершить работу в сессии служебного пользователя postgres:
Command exit