繁体   English   中英

将数据从postgres数据库移动到具有不同所有者的另一个数据库

[英]Move data from a postgres database to another database with a different owner

我有两个具有相同结构和表的postgres数据库,托管在同一台服务器上,数据库由不同的用户拥有:

database1owner1

database2owner2

我想知道的数据库1的内容转换成DATABASE2(覆盖DATABASE2的原始内容)复制的最佳方式。

我尝试了pg_dumppg_restore,但转储将显式指定owner1作为表的所有者,然后我尝试使用owner2database2获取数据时遇到权限问题。 我不得不手动将database2上的所有权限重新授予owner2 ,并将所有表的所有者再次设置为owner2

我的方法:

pg_dump database1 > database1.psql
postgres=# drop database database2;
postgres=# create database database2;
psql --d database2  -f database1.psql

有没有更简单的方法将数据从database1复制到database2,而无需在还原后手动更新用户权限。

是的,您可以使用pg_dump指定您不想导出所有权:

  • -O (或--no-owner )不导出所有权
  • -x (或--no-privileges )防止转储访问权限(grant / revoke命令)
    pg_dump db_name -O -x > output_file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM