Я пытаюсь настроить одноранговую аутентификацию для root на Postgres v9.5. Моя цель - разрешить заданиям cron запускать pgdump для создания резервных копий.
Мой файл pg_hba.conf выглядит следующим образом:
local all postgres md5
local all root peer map=mymap
Мой файл pg_ident.conf выглядит так:
# MAPNAME SYSTEM-USERNAME PG-USERNAME
mymap root dbadmin
Ошибка при запуске psql для тестирования от имени пользователя root:
psql: FATAL: ошибка аутентификации однорангового узла для пользователя «root»
Я видел здесь такие вещи, но они предлагают настройки, которые я уже пробую, но это не работает. Может ли кто-нибудь помочь или посоветовать другое решение?
Я попытался создать «резервного» пользователя с помощью следующих команд в postgres:
CREATE ROLE backup WITH LOGIN PASSWORD 'backuppasswd';
GRANT CONNECT ON DATABASE mydb To backup;
GRANT USAGE ON SCHEMA public TO backup;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO backup;
Затем я пробежал ниже:
export PGPASSWORD="backuppasswd"
Затем я создал crontask со следующей записью:
14 11 * * * pg_dump -U backup -h localhost mydb > /<mypath>
Если я сбегу "pg_dump -U backup -h localhost mydb > /<mypath>"
из командной строки он создает резервную копию, но если я разрешаю запускать задание cron, он создает пустой файл.
Может кто поможет?
Вы не пытаетесь подключиться как root
но, как dbadmin
. Ваша запись в pg_hba.conf
должно выглядеть так:
local all dbadmin peer map=mymap
тогда вам нужно запустить psql с пользователем: # psql -U dbadmin