You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pg_restore导入PostgreSQL数据库时遇权限拒绝报错求助

解决pg_restore执行CREATE SCHEMA时的权限拒绝错误

问题场景

已通过createdb创建数据库mydb,执行命令pg_restore -h localhost -p 5410 -U user -d mydb -v 20220711.dump导入dump文件时,出现权限错误:

pg_restore: [归档程序(db)] 无法执行查询:错误:数据库mydb的权限被拒绝
执行的命令为:CREATE SCHEMA mydb;

解决方案

方案1:使用真正的超级用户执行恢复

PostgreSQL默认的postgres用户为超级用户,拥有所有权限,替换命令中的用户为postgres重新执行:

pg_restore -h localhost -p 5410 -U postgres -d mydb -v 20220711.dump

方案2:为当前用户授予数据库的CREATE权限

若需保留使用user用户,先登录PostgreSQL控制台为该用户授予mydb数据库的CREATE权限:

-- 登录到PostgreSQL控制台
psql -h localhost -p 5410 -U postgres -d mydb

-- 执行授权语句
GRANT CREATE ON DATABASE mydb TO "user";

-- 退出控制台
\q

完成授权后重新执行原pg_restore命令即可。

方案3:手动创建Schema后跳过创建步骤

若已确认所需Schema结构,可手动创建Schema并设置权限,再让pg_restore跳过Schema创建步骤:

  1. 手动创建并配置Schema:
psql -h localhost -p 5410 -U postgres -d mydb
CREATE SCHEMA mydb;
ALTER SCHEMA mydb OWNER TO mydb;
\q
  1. 执行pg_restore时添加--no-create-schema参数:
pg_restore -h localhost -p 5410 -U user -d mydb -v --no-create-schema 20220711.dump

内容的提问来源于stack exchange,提问作者user3093583

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:48:51