我有一个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
当我执行相同的命令作为pipe理员用户执行就好了。 但是,当我作为一个“xxxxxx”用户执行失败。
有人可以引导我,什么权限/权利应该被添加到“xxxxxx”来恢复架构?
Postgres已经为您解答了这个问题: ERROR: must be owner of database xx_db_name_xx must be owner of database 。
您需要ALTER DATABASE和SET OWNER作为您正在尝试进行架构更改的用户。
( 有关ALTER DATABASE SQL语句的信息,请参阅Postgres手册 )
通常,以Postgres超级用户身份还原数据库会更容易 – 这样可以避免任何权限问题,并且通常在还原数据库时还原所有权/权限。