Я пытаюсь сбросить всю базу данных PG с хостинга на экземпляр GCP/GCE ( RHEL 8.x VM ).
Цель состоит в том, чтобы перенести файл .sql на другую виртуальную машину RHEL 8.x в GCE и восстановить базу данных.
Я запускаю этот скрипт как пользователь ОС 'postgres'.
#!/bin/bash
clear
export PGUSER=<pg_user>
export PG_DATABASE=<pg_db>
export PGHOSTADDR=<pg_ip_addr>
export PGPORT=5432
SQL_FILE=<pg_db>.sql
export PGPASSWORD=<passwd>
pg_dump \
--format plain \
--no-owner \
--verbose \
--file $SQL_FILE \
$PG_DATABASE
Если в сценарии есть что-то еще, рекомендованное для дампа базы данных в файл .sql для восстановления:
- все, что рекомендуется добавить в сценарий,
- или любой способ улучшить скрипт, о котором вы знаете), пожалуйста, посоветуйте.
Я получаю эту ошибку при запуске скрипта: (установлен PostGIS)
pg_dump: last built-in OID is 16383
pg_dump: reading extensions
pg_dump: identifying extension members
pg_dump: reading schemas
pg_dump: reading user-defined tables
pg_dump: error: query failed: ERROR: permission denied for table us_lex
pg_dump: error: query was: LOCK TABLE public.us_lex IN ACCESS SHARE MODE
Почему отказано в доступе при работе от имени пользователя ОС postgres
.
Какое разрешение мне нужно добавить (полная/точная команда), чтобы добавить все необходимые разрешения?
Или как я мог исключить эту таблицу? Я не думаю, что он мне нужен, и он будет воссоздан при установке нового экземпляра Postgres.
1 ответ
Что, вероятно, смущает вас, так это то, что запрещенные разрешения не являются разрешениями операционной системы, а разрешениями базы данных.
Пользователь базы данных, используемый для pg_dump
, — это <pg_user>
, и этот пользователь базы данных, очевидно, не имеет привилегии SELECT
в таблице public.us_lex
.
Похожие вопросы
Новые вопросы
postgresql
PostgreSQL — это система управления реляционными базами данных (RDBMS) с открытым исходным кодом, доступная для всех основных платформ, включая Linux, UNIX, Windows и OS X. Задавая вопросы, указывайте свою версию Postgres. Обратитесь к dba.stackexchange.com для вопросов, касающихся администрирования или дополнительных функций.