pg_restore错误:角色XXX不存在

2024-05-20

尝试将数据库从一个系统复制到另一个系统。涉及的版本是9.5.0(源)和9.5.2(目标)。

源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb_dev与主人pgdev.

所有命令都在将托管副本的目标系统上运行。

The pg_dump命令是:

    pg_dump -f schema_backup.dump --no-owner -Fc -U pgdba -h $PROD_DB_HOSTNAME -p $PROD_DB_PORT -d foodb -s --clean;

这运行没有错误。

相应的pg_restore is:

    pg_restore --no-owner --if-exists -1 -c -U pgdev -d foodb_dev schema_backup.dump

这会引发错误:

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3969; 0 0 ACL public pgdba
pg_restore: [archiver (db)] could not execute query: ERROR:  role "pgdba" does not exist
Command was: REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM pgdba;
GRANT ALL ON SCHEMA public TO pgdba;
GRANT ...

如果我以纯文本格式生成转储文件(-Fp)我看到它包含几个条目,例如:

REVOKE ALL ON TABLE dump_thread FROM PUBLIC;
REVOKE ALL ON TABLE dump_thread FROM pgdba;
GRANT ALL ON TABLE dump_thread TO pgdba;
GRANT SELECT ON TABLE dump_thread TO readonly;

尝试为用户设置权限pgdba当然,谁甚至不作为目标系统上的用户存在,目标系统上只有用户pgdev,因此误差来自pg_restore.

在源数据库上的权限例如dump_thread table:

# \dp+ dump_thread
Access privileges
-[ RECORD 1 ]-----+--------------------
Schema            | public
Name              | dump_thread
Type              | table
Access privileges | pgdba=arwdDxt/pgdba+
                  | readonly=r/pgdba
Column privileges |
Policies          |

一个快速的解决方案是简单地添加一个用户pgdba在目标集群上并完成它。

但不应该是--no-owner首先要注意不要在转储中包含所有者特定的命令吗?


我意识到--no-owner不一样-x。我添加了-x to all pg_dump命令,这意味着:

-x, --no-privileges          do not dump privileges (grant/revoke)

这实际上排除了违规行为GRANT/REVOKE来自转储的命令。问题解决了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pg_restore错误:角色XXX不存在 的相关文章

随机推荐

  • rvest 函数 html_nodes 返回 {xml_nodeset (0)}

    我正在尝试抓取以下网站的数据框 http stats nba com game 0041700404 playbyplay http stats nba com game 0041700404 playbyplay 我想创建一个表格 其中包
  • ffmpeg concat:“不安全的文件名”

    尝试将一堆 mts 文件转换为一个大 mp4 文件 stephan rechenmonster mnt backupsystem archive2 Videos 20151222 PRIVATE AVCHD BDMV bin ffmpeg
  • 使用 Selenium webdriver 和 Python 获取完全渲染的 HTML

    我正在尝试使用 Selenium webdriver 在 Python 中构建一个网络抓取工具 但是当我从 webdriver 检索网站源代码时 我无法访问所需的信息 我认为问题在于 一旦页面最初从服务器下载 内容就会通过 JavaScri
  • 使用 GWT CellTableBuilder 构建树表

    Is it possible to build a tree table like this http www sencha com examples ExamplePlace basictreegrid with the new Cell
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • Django 模型继承、重写字段

    我正在阅读 Python Web Development with Django 一书 我在书中找到了这个例子 class Book models Model title models CharField max length 100 ge
  • 将 numpy 舍入到最近的步骤

    我想知道如何将 numpy 中的数字舍入到上限或下限阈值 该阈值是预定义步长的函数 希望以更清晰的方式说明 如果我有数字 123 且步长等于 50 我需要将 123 舍入到最接近的 150 或 100 在本例中为 100 我得出了下面的函数
  • 文件“PyInstaller/loader/pyimod03_importers.py”,第 546 行,在 exec_module 中,ModuleNotFoundError:没有名为“x”的模块

    EDIT 我正在尝试导入algosec models在一个文件里面algobot包裹 我尝试添加 hidden import algosec 我还尝试在导入之前添加路径 使用sys path append algosec 这是我尝试运行该程
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 使用 Pillow 时出错:ImportError:无法导入名称 _imaging

    我已经阅读了类似问题的答案 但似乎没有一个适合我的情况 当尝试使用 Pillow 时 我收到此错误 gt gt gt from PIL import Image Traceback most recent call last File
  • Presto/Trino - where 子句中的静态日期和时间戳

    我非常确定以下查询在 Presto 上对我有用 select segment sum count from modeling trends where segment 2557172 and date 2016 06 23 and coun
  • 使用 Parceler 与 Kotlin 数据类和构造函数进行序列化

    有没有办法使用Parceler https github com johncarl81 parceler使用 Kotlin 数据类和构造函数进行序列化 无需使用 ParcelProperty每个字段的注释 如果我尝试使用这样的库 Parce
  • gulp-sass 5 没有默认的 Sass 编译器;请自行设置

    插件 gulp sass 错误 信息 gulp sass 5 没有默认的 Sass 编译器 请自行设定 这俩sass and node sass包裹是允许的 例如 在你的 gulpfile 中 var sass require gulp s
  • 除非我在项目目录中,否则 Git 不会显示日志

    我正在尝试打电话git log当我在不同的目录中时 我经过的位置 git is git log Users Leica proj1 但它说 不是 git repo 如果我cd进入这个目录 就可以正常工作了 cd Users Leica Pr
  • 参数无效--model_config_file_poll_wait_seconds

    我正在尝试使用以下两个选项启动tensorflow serving 如文档中所示 docker run t rm p 8501 8501 v pwd models models tensorflow serving model config
  • 在 HTML5 中创建可拖动和可缩放的网格

    与其他 HTML5 不同如何创建网格问题 我想知道如何制作一个可拖动且可扩展的 绘制网格非常简单 var c document getElementById canvas var ctx c getContext 2d var width
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • 使用 jQuery 清除 IMG

    我正在尝试从 a 中删除加载的图像 img 元素 但清除或删除 src 不会执行此操作 该怎么办 HTML img src https www google com images srpr logo3w png JQUERY img att
  • 仅从日期计算夏令时

    我正在使用 Arduino 和实时时钟芯片 该芯片补偿了闰年等 因此它始终具有正确的日期 但我认为由于区域复杂性 它不处理夏令时 时钟可以给出日 月 年 从 1 开始 以及星期几 星期日 0 到星期六 6 因为我需要与用户输入的日期和时间进
  • pg_restore错误:角色XXX不存在

    尝试将数据库从一个系统复制到另一个系统 涉及的版本是9 5 0 源 和9 5 2 目标 源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb dev与主人pgdev 所有命令都在将托管副本的目标系统上运行 The p