Подготовка СУБД PostgreSQL
Управление резервным копированием выполняется командами с сервера клиенту. Взаимодействие с СУБД выполняется модулем PostgreSQL Universal на узле клиента (локально).
Резервное копирование СУБД может быть выполнено, если
-
обеспечена сетевая доступность узла СУБД с сервера и сервера — с клиента;
-
в настройках СУБД разрешено локальное подключение к СУБД пользователя, указанного в настройках модуля PostgreSQL Universal;
-
в настройках СУБД настроен режим архивирования.
Модуль PostgreSQL Universal поддерживает три способа аутентификации в СУБД.
Для аутентификации с помощью Unix-сокета (метод peer) выполните подготовку СУБД по инструкции из Раздел 1.
Для базовой аутентификации или аутентификации с использованием внешнего хранилища секретов выполните подготовку СУБД по инструкции из Раздел 2.
1. Подготовка СУБД для аутентификации через Unix-сокет
Аутентификация через Unix-сокет с использованием метода peer позволяет пользователю ОС получить доступ к СУБД без ввода пароля.
Настройте доступ к СУБД из-под учетной записи пользователя root.
-
В файле
pg_ident.confукажите соответствие системного пользователяrootи пользователя базы данныхpostgres.Пример 1. Правило соответствияroot_to_postgres root postgres -
Добавьте в файл
pg_hba.confстроку, разрешающую локальные подключения к СУБД через Unix-сокет (методpeer) с использованием созданного соответствия.local all all peer map=root_to_postgres
2. Подготовка СУБД для аутентификации через пользователя СУБД
2.1. Создание и настройка прав пользователя СУБД
Если для доступа к СУБД используется учетная запись не администратора СУБД, то для создания базовой резервной копии пользователь должен обладать правами на вызов функций начала и окончания резервного копирования экземпляра СУБД.
-
Создайте в СУБД пользователя
rubackup_backuper.create user rubackup_backuper password '12345'; (1) alter role rubackup_backuper with login;1 Вместо 12345укажите желаемый пароль. -
Если вы планируете выполнять потоковое резервное копирование журналов транзакций (режим STREAM), то выдайте пользователю
rubackup_backuperправа на выполнение репликации.alter role rubackup_backuper with replication; -
Настройте права пользователя в СУБД для доступа.
Пример 2. Предоставление прав на выполнение функций в PostgreSQL версии 15 и вышеgrant execute on function pg_backup_start(text,bool) to rubackup_backuper; (1) grant execute on function pg_backup_stop(bool) to rubackup_backuper; (1) grant execute on function pg_switch_wal() to rubackup_backuper; grant pg_read_all_settings to rubackup_backuper;1 См. официальную документацию PostgreSQL. Пример 3. Предоставление прав на выполнение функций в PostgreSQL версии 14 и нижеgrant execute on function pg_start_backup(text,bool,bool) to rubackup_backuper; (1) grant execute on function pg_stop_backup(bool,bool) to rubackup_backuper; (1) grant execute on function pg_switch_wal() to rubackup_backuper; grant pg_read_all_settings to rubackup_backuper;1 См. официальную документацию PostgreSQL. Если вы планируете использовать базовый тип аутентификации в СУБД, то в дальнейшем при настройке модуля в конфигурационном файле укажите имя созданного пользователя (
username) и его пароль (password).Если вы планируете использовать внешнее хранилище секретов для аутентификации в СУБД, то в дальнейшем добавьте учетные данные созданного пользователя в такое хранилище.
2.2. Доступ пользователя к СУБД
Правила доступа к СУБД задаются в файле pg_hba.conf. Файл устанавливает
метод подключения (local — локально, host — по TCP/IP), ограничивает
доступ базой данных или задачей (replication), предоставляет доступ
пользователю с заданных адресов указанным методом аутентификации.
Добавьте в файл pg_hba.conf строки, указывающие на право пользователя
rubackup_backuper на локальный (localhost, 127.0.0.1) доступ по TCP/IP
к СУБД для резервного копирования и репликации. Закомментируйте строки,
предоставляющие доступ неограниченному кругу лиц (host all all).
host backupdb rubackup_backuper 127.0.0.1/32 md5
host replication rubackup_backuper 127.0.0.1/32 md5
pg_hba.conf# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
# host all all 127.0.0.1/32 md5
# IPv6 local connections
# host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege
local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
host backupdb rubackup_backuper 127.0.0.1/32 md5
host replication rubackup_backuper 127.0.0.1/32 md5
Если вы хотите подключаться из локальной сети (192.168.1.*)
непосредственно к СУБД, добавьте в pg_hba.conf строку:
host any any 192.168.1.1/32 md5
Для доступа к СУБД необходимо открыть порт 5432 (или иной заданный
в postgresql.conf) в фаерволе узла клиента. Пользователь, для которого
требуется доступ к СУБД, должен существовать и иметь необходимые полномочия.
|