如何获取pg_dump以包含创建用户命令



我需要创建以下所有命令的转储。

   test=> create user rdstest login password 'rdstest';
   CREATE ROLE
   test=> grant connect on database test to rdstest;
   GRANT
   test=> create user devadmin login password 'devtest';
   CREATE ROLE
   test=> grant connect on database test to devadmin;
   GRANT
   test=> grant rdstest to devadmin with admin option;
   GRANT ROLE
   test=> grant rdstest to devadmin;
   GRANT ROLE
   test=> create schema authorization rdstest;
   CREATE SCHEMA

当我尝试使用pg_dump创建它时作为pg_dump -U devadmin -h ****xxx.rds.amazonaws.com test> Outfile.sql

我只能看到与架构相关的命令

CREATE SCHEMA rdstest;
ALTER SCHEMA rdstest OWNER TO rdstest;

如何使pg_dump包含所有命令:创建用户命令,在数据库测试中授予对rdstest的连接等。

pg_dump不能这样做,因为pg_dump只转储单个数据库,并且该信息不是某个数据库的一部分,而是全局存储在Postgres"集群"中。

为此,您需要使用 --globals-only 选项使用pg_dumpall

pg_dumpall --globals-only  --file=globals.sql

最新更新