[英]Create extension from postgres superuser to another database with it own owner?
[英]Move data from a postgres database to another database with a different owner
我有两个具有相同结构和表的postgres数据库,托管在同一台服务器上,数据库由不同的用户拥有:
database1 : owner1
database2 : owner2
我想知道的数据库1的内容转换成DATABASE2(覆盖DATABASE2的原始内容)复制的最佳方式。
我尝试了pg_dump和pg_restore,但转储将显式指定owner1作为表的所有者,然后我尝试使用owner2从database2获取数据时遇到权限问题。 我不得不手动将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.