postgresql:如何转储和恢复群集的角色?

postgresql:如何转储和恢复群集的角色?,第1张

概述角色存储在群集中的哪个位置,以及如何转储它们? 我做了一个db的pg_dump然后将它加载到一个不同的集群中,但我收到了很多这些错误: psql:mydump.sql:3621: ERROR: role "myrole" does not exist 显然我的数据库的转储不包括角色.我尝试转储’postgres’数据库,但我也没有看到那里的角色. 我是否需要使用pg_dumpall –roles 角色存储在群集中的哪个位置,以及如何转储它们?

我做了一个db的pg_dump然后将它加载到一个不同的集群中,但我收到了很多这些错误:

psql:mydump.sql:3621: ERROR:  role "myrole" does not exist

显然我的数据库的转储不包括角色.我尝试转储’postgres’数据库,但我也没有看到那里的角色.

我是否需要使用pg_dumpall –roles-only?

Postgresql版本8.4.8和9.1.4
*** 作系统:Ubuntu 11.04 Natty

CREATE ROLE documentation:

Note that roles are defined at the database cluster level,and so are valID in all databases in the cluster.

由于pg_dump转储单个数据库,因此无法使用该实用程序提取角色.您建议的pg_dumpall –roles-only命令将完成工作 – 但是您可能需要过滤其输出,以便只在新群集中创建所需的角色.

角色存储在pg_authID目录中,该目录与其他群集范围的表一起物理存储在Postgresql安装的data / global /子文件夹中.您可以通过pg_roles视图查询pg_authID的内容.

注意:您需要超级用户权限才能转储角色.否则,您将在pg_authID上获得SELECT权限 – 即使超级用户授予SELECT权限,您也会收到相同的错误.但是,在这种情况下,您可以通过直接查询pg_authID列出角色,将其复制到文件并滚动一些魔法来创建必要的CREATE RolE和ALTER RolE语句.

总结

以上是内存溢出为你收集整理的postgresql:如何转储和恢复群集的角色?全部内容,希望文章能够帮你解决postgresql:如何转储和恢复群集的角色?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1168262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存