Назад | Перейти на главную страницу

Создание и изменение разрешений схемы для роли входа в базу данных Postgresql

У меня есть база данных Postgresql с 3 схемами (2 определяемых пользователем и 1 общедоступная).

У меня есть сценарий, который делает резервную копию схемы, определенной пользователем, а затем удаляет схему.

Теперь, после выполнения некоторых операций, я хочу восстановить определенные пользователем схемы из резервной копии схемы (schema_backup.out).

Когда я выполняю

cat schema_backup.out | psql xx_db_name_xx

Я получаю следующее сообщение об ошибке

ERROR:  permission denied for database xx_db_name_xx
ERROR:  schema "aaaa" does not exist 
ERROR:  permission denied for database xx_db_name_xx
ERROR:  schema "bbbb" does not exist 
ERROR:  must be owner of database xx_db_name_xx

Когда я выполняю ту же команду, что и пользователь Admin, она выполняется нормально. Но когда я выполняю роль пользователя xxxxxx, это не удается.

Может ли кто-нибудь посоветовать мне, какие разрешения / права следует добавить к «xxxxxx» для восстановления схемы?

Postgres уже ответил вам на это: ERROR:must be owner of databasexx_db_name_xx.

Тебе надо ALTER в DATABASE и SET OWNER быть пользователем, от имени которого вы пытаетесь внести изменения в схему.
(См. Руководство Postgres для получения информации о ALTER DATABASE Заявление SQL)


Обычно проще восстанавливать базы данных в качестве суперпользователя Postgres - это позволяет избежать проблем с разрешениями, и обычно права собственности / разрешения восстанавливаются при восстановлении базы данных.