2017-04-21 91 views
1

我需要将角色从一个postgresql数据库克隆到另一个。是否有可能以某种方式提取角色密码哈希并将其设置在另一个数据库中?我想避免任何明确的密码处理...使用散列设置postgres密码

回答

1

如果PostgreSQL认为您使用MD5散列设置密码,它将直接存储它。从the docs

如果所呈现的密码串已经在MD5加密的格式,然后将其存储加密原样,而不管是否加密的或未加密被指定(因为系统不能解密该指定的加密的密码字符串) 。这允许在转储/恢复期间重新加载加密的密码。

0

您可以从pg_shadow中选择密码并按照文档使用它,正如Eavn告诉的那样。或者你可以使用pg_dumpall -g这将基本上准备语句运行与MD5密码例如。在我的机器上:

CREATE ROLE r; 
ALTER ROLE r WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'md5514f1b439f404f86f77090fa9edc96ce';