Я пытаюсь автоматизировать создание пользователя для резервного копирования базы данных на Postgresql. Какие гранты необходимы для запуска pg_dump
?
Тебе нужно CONNECT
в рассматриваемой базе данных, USAGE
на всех схемах и SELECT
на всех таблицах, представлениях и последовательностях.
Не уверен, о чем говорит Милен, поскольку для представлений нет оператора предоставления, и предоставления SELECT для таблиц будет достаточно.
Вот несколько операторов SQL, чтобы это сделать:
CREATE USER db_backup WITH PASSWORD 'p@55wurd_h3r3' LOGIN;
GRANT CONNECT ON DATABASE "some_db_name_here" to db_backup;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO db_backup;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO db_backup;
Я тестировал это с v 9.6