Postgresql Postgres错误:表的权限被拒绝

Postgresql Postgres错误:表的权限被拒绝,postgresql,psql,rds,pg-dump,Postgresql,Psql,Rds,Pg Dump,我有一个从远程数据库使用pg_dump生成的转储文件。我正在使用该文件使用psql恢复和填充数据库。 我没有用户名和数据库名。我浏览了一下sql文件,找出了用户和数据库。 以下是我的步骤: 1.psql-h-u-d(我在这里使用了超级用户)。 2.已创建用户,因为应用程序仅需要使用此用户进行访问。 3.将数据库的所有者更改为在步骤2中使用Pgadmin创建的用户 我无法访问任何表并获取错误--错误:表的权限被拒绝 请帮忙 谢谢如果使用dump和restore而不是psql来恢复数据库,效果会更好

我有一个从远程数据库使用pg_dump生成的转储文件。我正在使用该文件使用psql恢复和填充数据库。 我没有用户名和数据库名。我浏览了一下sql文件,找出了用户和数据库。 以下是我的步骤: 1.psql-h-u-d(我在这里使用了超级用户)。 2.已创建用户,因为应用程序仅需要使用此用户进行访问。 3.将数据库的所有者更改为在步骤2中使用Pgadmin创建的用户

我无法访问任何表并获取错误--错误:表的权限被拒绝

请帮忙


谢谢

如果使用dump和restore而不是psql来恢复数据库,效果会更好。 e、 g

e、 g假设您在remoteDB中有数据库dbname_source,在localDB中有数据库dbname_target,那么您可以使用以下命令进行转储和还原

./pg_dump -U postgres -p 5432 -h <remote_IP> -Ft dbname_source > dump_of_source.sql.tar 
./pg_restore -U postgres -h localhost -p 5432 -d dbname_target dump_of_source.sql.tar
/pg\U dump-U postgres-p 5432-h-Ft dbname\U source>dump\U of\U source.sql.tar
./pg_restore-U postgres-h localhost-p 5432-d dbname_target dump_of_source.sql.tar

我无法控制他们生成转储的过程。我得到的只是一个.sql文件。窥视文件,我试图找到数据库名称和所有者。然后创建用户和数据库,最后使用PSQL导入。我昨天错过了所有者,后来当我添加所有者时,我开始出现上述错误。非常感谢您能为我的方案提出解决方案。谢谢不要创建任何用户,让脚本来创建。只需创建一个不同于sql文件中的数据库,例如localdb。然后执行以下命令。/psql-U postgres-h localhost-p 5432-d localdb-f mydumpfile.sql@Amjad Shahzad只是澄清一下,假设我的数据库名是dvd,拥有它的用户是alex(在源代码中)。以下可能是命令:
/pg\U dump-U alex-p 5432-h-Ft dvd>dvd.sql.tar./pg\U restore-U postgres-h localhost-p 5432-d dbname\U目标dump\U of_source.sql.tar或/psql-U postgres-h远程主机-p 5432-d dvd-f dvd.sql
。我真的不需要alex用户,我应该使用postgres用户。请确认,谢谢!最好使用超级用户postgres,它也会照顾用户alex。因此
/pg\U dump-U postgres-p 5432-h-Ft dvd>dvd.sql.tar
用于转储和还原
/pg\U restore-U postgres-h localhost-p 5432-d dbname\U target dvd.sql.tar
,因此,在还原时,所有连接信息都是要还原转储的目标dbms的信息。假设您希望将数据库dvd的转储恢复为本地数据库名称作为dbname\u目标。