Гид по технологиям

Установка PostgreSQL и pgAdmin4 на Debian 12

• 8 min read • Базы данных • Обновлено 24 Nov 2025
PostgreSQL и pgAdmin4 на Debian 12
PostgreSQL и pgAdmin4 на Debian 12

Иллюстрация PostgreSQL и pgAdmin

Зачем это нужно

PostgreSQL — открытая, расширяемая и соответствующая стандарту SQL система управления базами данных. pgAdmin4 — удобный графический администратор для PostgreSQL, доступный в виде десктоп- и веб-версий. Вместе они позволяют быстро развернуть, администрировать и развивать БД в продуктивной или тестовой среде на Debian 12.

Кому подойдёт это руководство

  • Системным администраторам, которым нужно развернуть PostgreSQL на Debian 12.
  • Разработчикам, желающим управлять базами через pgAdmin4.
  • Операторам, которым важна базовая безопасность и резервное копирование.

Требования

  • Сервер под управлением Debian 12.
  • Непривилегированный пользователь с правами sudo.

План статьи

  1. Добавление репозитория PostgreSQL и установка сервера
  2. Первичная настройка и смена пароля пользователя postgres
  3. Создание ролей и баз через psql
  4. Установка и настройка pgAdmin4 (веб)
  5. Подключение сервера в pgAdmin4 и создание базы через GUI
  6. Рекомендации по безопасности, бэкапам и мониторингу
  7. Критерии приёмки и контрольный список

Установка PostgreSQL на Debian 12

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

Сначала добавьте репозиторий PostgreSQL для вашей системы Debian:

sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Затем добавьте GPG-ключ репозитория:

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/pgdg.gpg

Обновите индекс пакетов:

sudo apt update

Добавление репозитория PostgreSQL в список apt

Установите сервер PostgreSQL:

sudo apt install postgresql

Подтвердите установку, введя y, если система спросит.

Установка пакета postgresql через apt в терминале

Проверьте статус службы PostgreSQL:

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Если служба включена и запущена, вы увидите статус active (running).

Статус службы postgresql: активна и включена

Важно: служба PostgreSQL по умолчанию слушает только localhost (listen_addresses = ‘localhost’). Если планируете подключаться удалённо, нужно будет изменить конфигурацию и настроить TLS/брандмауэр.

Первая настройка: смена пароля для системного пользователя postgres

После установки в системе создаётся системный пользователь postgres, который по умолчанию владеет экземпляром БД. Сначала войдите в оболочку psql от имени этого пользователя:

sudo -u postgres psql

Внутри psql выполните изменение пароля (замените ‘p4ssw0rdAdmin’ на надёжный пароль):

ALTER USER postgres WITH PASSWORD 'p4ssw0rdAdmin';

Завершите сеанс psql:

quit

Изменение пароля пользователя postgres в psql

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

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

psql — стандартный клиент для работы с PostgreSQL. Он позволяет управлять ролями, базами и выполнять SQL-запросы.

Войдите снова в psql от имени системного пользователя postgres:

sudo -u postgres psql

Создайте новую роль с правами на создание баз и ролей и установите пароль:

CREATE USER alice with CREATEDB CREATEROLE;
ALTER USER alice with PASSWORD 'p4ssw0rd';

Проверьте список ролей (обратите внимание: в JSON-выводе в документации часто встречается ‘\du’):

\du

Создание пользователя alice и вывод списка ролей в psql

Создайте базу данных под управлением роли alice:

CREATE DATABASE alice OWNER alice;
\l

Создание базы данных alice и список баз данных в psql

Завершите работу с psql:

quit

Установка pgAdmin4 (веб-версия)

pgAdmin4 в веб-режиме разворачивается как WSGI-приложение, которое чаще всего запускают через Apache2 или nginx + uWSGI/Gunicorn. В Debian пакет pgadmin4-web автоматически предложит конфигурацию Apache.

Добавьте репозиторий pgAdmin4:

sudo echo "deb [arch=amd64 signed-by=/usr/share/keyrings/pgadmin4.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main"\  
| sudo tee /etc/apt/sources.list.d/pgadmin4.list

Добавьте ключ репозитория:

curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/pgadmin4.gpg

Добавление репозитория pgAdmin4 в Debian

Обновите индекс пакетов и установите веб-версию pgAdmin4:

sudo apt update
sudo apt install pgadmin4-web

Подтвердите установку при появлении запроса.

Установка пакета pgadmin4-web и зависимостей через apt

После установки выполните скрипт настройки веб-интерфейса:

/usr/pgadmin4/bin/setup-web.sh

Во время выполнения вас попросят:

  • Ввести email/логин и пароль администратора pgAdmin4.
  • Подтвердить включение модуля WSGI и конфигурацию доступа по пути /pgadmin4.
  • Подтвердить перезапуск Apache2 для применения изменений.

Настройка pgAdmin4: ввод администратора и включение wsgi

Откройте браузер и перейдите по адресу http:///pgadmin4 — например http://192.168.10.15/pgadmin4. Введите admin email и пароль, затем нажмите Login.

Экран входа в pgAdmin4: поле email и пароль

После успешного входа вы увидите панель управления pgAdmin4.

Панель управления pgAdmin4 после входа

Добавление сервера PostgreSQL в pgAdmin4

  1. В панели pgAdmin нажмите Add New Server.
  2. На вкладке General укажите имя сервера (произвольное) и группу.

Вкладка General при добавлении нового сервера в pgAdmin

  1. Перейдите на вкладку Connection и заполните поля:
  • Host: IP или hostname сервера PostgreSQL (для локальной машины — localhost).
  • Port: 5432 (порт по умолчанию).
  • Username: имя роли (например alice или postgres).
  • Password: пароль роли.
  • Включите Save password, если хотите, чтобы пароль запоминался (учтите риски сохранения пароля на сервере).

Вкладка Connection: поля Host, Port, Username, Password

Нажмите Save. Если соединение успешно, сервер отобразится в левом дереве Servers.

Подключённый сервер PostgreSQL в интерфейсе pgAdmin

Создание базы данных через pgAdmin4

  1. Правый клик на сервере → Create → Database.

Меню создания новой базы данных в pgAdmin

  1. Введите имя базы и выберите владельца (Owner). Нажмите Save. В примере создаём appdb владельцем alice.

Форма создания базы данных: поля Database и Owner

После создания база отобразится в дереве объектов.

База данных appdb отображается в дереве серверов

Проверка через psql (локально под пользователем alice):

su - postgres
psql -U alice -h localhost

Внутри psql выполните:

\l

Проверка списка баз данных в psql, appdb присутствует

Рекомендации по безопасности и настройке доступа

Важно обеспечить базову́ю безопасность при развёртывании БД в сети.

  • Сетевой доступ
    • По умолчанию в файле /etc/postgresql//main/postgresql.conf параметр listen_addresses = ‘localhost’. Для удалённых подключений укажите конкретный IP или ‘‘ при необходимости, но лучше ограничивать IP в брандмауэре.
    • Настройте брандмауэр (ufw) и разрешите вход только с доверенных хостов:
sudo ufw allow from 192.168.10.0/24 to any port 5432 proto tcp
sudo ufw enable
  • Файл контроля доступа pg_hba.conf
    • Файл находится в каталоге конфигурации PostgreSQL (например /etc/postgresql/15/main/pg_hba.conf). Пример записи для паролей md5:
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
host    all             all             192.168.10.0/24         md5
  • TLS

    • Для защиты трафика включите SSL-сертификаты и настройте ssl = on, ssl_cert_file, ssl_key_file в postgresql.conf.
  • Пароли и права

    • Используйте роли с минимальными привилегиями (принцип наименьших привилегий). Откажитесь от shared superuser, если не требуется.
  • Сохранение пароля в pgAdmin

    • Если сервер доступен в общем доступе, избегайте опции Save password в pgAdmin на общедоступных машинах.

Резервное копирование и восстановление

  • Резервное копирование отдельных баз данных:
pg_dump -U alice -h localhost -F c -b -v -f /backups/appdb_$(date +%F).dump appdb
  • Полные логические дампы всех баз:
pg_dumpall -U postgres -h localhost > /backups/all_$(date +%F).sql
  • Физическое резервное копирование (для больших БД и быстрой RPO): pg_basebackup, использование репликации и WAL-архивации.

Мониторинг и базовые метрики

Следите за следующими показателями:

  • Доступность сервиса (is the postmaster process running).
  • Нагрузка на диск и свободное место (problematic for WAL growth).
  • Количество активных соединений.
  • Время выполнения долгих запросов.

Инструменты: pg_stat_activity, pg_stat_replication, внешние агенты мониторинга (Prometheus + PostgreSQL exporter, Zabbix и т.д.).

Быстрый чек-лист ролей (Role-based checklist)

  • Администратор БД

    • Установил обновления и патчи системы.
    • Настроил резервное копирование и проверку восстановления.
    • Настроил мониторинг и алерты.
  • Девелопер

    • Создал отдельную роль с минимальными правами.
    • Выделил тестовую базу.
    • Использует миграции (Flyway, Liquibase, sqitch).
  • Оператор

    • Настроил брандмауэр, SSL и ограничения по IP.
    • Проверил периодические задания резервного копирования (cron/systemd timers).

Мини-методика развертывания на продакшн (пошагово)

  1. Подготовка окружения: обновление пакетов, создание раздела/тома для данных PostgreSQL.
  2. Установка PostgreSQL и базовая конфигурация (listen_addresses, wal_level, archive_mode).
  3. Настройка бэкапов и проверка восстановления в безопасной среде.
  4. Установка pgAdmin4 на отдельном управляемом сервере или в контейнере.
  5. Применение правил брандмауэра и TLS.
  6. Перенос данных, smoke-тесты, нагрузочное тестирование.
  7. Перевод в рабочую эксплуатацию и включение мониторинга.

Частые ошибки и способы устранения

  • Не удаётся подключиться из pgAdmin4: проверьте listen_addresses, pg_hba.conf и брандмауэр.
  • Ошибка аутентификации: убедитесь в правильности имени пользователя, пароля и метода аутентификации в pg_hba.conf.
  • Служба не стартует: смотрите логи systemd (sudo journalctl -u postgresql) и файл лога PostgreSQL.

Критерии приёмки

  • PostgreSQL установлен и служба запущена (sudo systemctl status postgresql).
  • Успешный вход в psql под postgres и под пользовательской ролью (alice).
  • Успешное создание и видимость базы appdb в psql и через pgAdmin4.
  • Резервная копия создаётся и успешно восстанавливается в тестовом окружении.
  • Брандмауэр и pg_hba.conf настроены так, чтобы допускать только разрешённые хосты.

Контрольные тесты

  • Подключиться к базе appdb под ролью alice из локальной машины и выполнить SELECT 1.
  • Создать дамп через pg_dump и восстановить в отдельной базе.
  • Проверить, что pgAdmin4 доступен через браузер по path /pgadmin4 и позволяет подключаться к серверу.

Шпаргалка команд (Cheat sheet)

  • Установка PostgreSQL:

    sudo apt update
    sudo apt install postgresql
  • Вход в psql как postgres:

    sudo -u postgres psql
  • Список ролей и баз:

    \du
    \l
  • Создание роли и базы:

    CREATE USER bob WITH CREATEDB;
    ALTER USER bob WITH PASSWORD 'secure';
    CREATE DATABASE project OWNER bob;
  • Дамп и восстановление:

    pg_dump -U bob -h localhost -F c -f /tmp/project.dump project
    pg_restore -U bob -d project_restored /tmp/project.dump

Модели мышления и когда этот подход не подходит

Ментальная модель: PostgreSQL — это надежный ACID-совместимый реляционный движок с расширяемой архитектурой (типами, индексами, расширениями). pgAdmin4 — удобный инструмент управления, но не заменяет скрипты автоматизации и CI/CD.

Когда не подходит:

  • Для гипермалых проектов без требований к SQL вы можете выбрать более простые решения (SQLite).
  • Для проектов, требующих горизонтального масштабирования по шардированию на уровне приложений, возможно, потребуются дополнительные решения (Citus, сторонние шардинговые слои).

Совместимость и миграция с предыдущих версий

  • PostgreSQL стремится к обратной совместимости SQL, но при обновлении мажорных версий рекомендуется читать релиз-ноуты.
  • Для безопасного апгрейда используйте pg_upgrade или логическую миграцию через pg_dump/pg_restore.

Безопасность данных и соответствие требованиям приватности

  • Если обрабатываете персональные данные, применяйте шифрование на уровне диска и TLS для трафика, ограничьте доступ по списку IP и храните пароли в безопасном хранилище.
  • Логи доступа и аудита следует хранить согласно политикам вашей организации.

Заключение

Вы успешно установили PostgreSQL и pgAdmin4 на Debian 12, настроили пароли и создали тестовую роль и базу данных как через psql, так и через pgAdmin4. Дальше рекомендуем настроить резервное копирование, мониторинг и продумать политику доступа и шифрования.

Важные заметки

  • Не храните простые пароли в открытом виде; используйте менеджеры секретов.
  • Всегда тестируйте восстановление резервных копий.

Ресурсы и дальнейшие шаги

Итоговый контрольный список

  • Служба PostgreSQL запущена и включена
  • Пароль postgres изменён
  • Создана роль alice и база appdb
  • pgAdmin4 установлен и доступен по /pgadmin4
  • Настроены бэкапы и проверено восстановление
  • Ограничен доступ через pg_hba.conf и брандмауэр
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро