【问题标题】:Move data from a postgres database to another database with a different owner将数据从 postgres 数据库移动到具有不同所有者的另一个数据库
【发布时间】:2019-04-30 12:50:42
【问题描述】:

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

database1owner1

database2owner2

我想知道将 database1 的内容复制到 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,而无需在还原后手动更新用户权限。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,但我应该在恢复数据库时重新指定所有者吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2016-09-01
    • 2016-10-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多