获取PostgreSQL登录角色的加密密码
有没有办法从PostgreSQL服务器获取登录卷的加密密码 为了深入了解我的问题,我正在尝试通过Ansible管理获取PostgreSQL登录角色的加密密码,postgresql,ansible,Postgresql,Ansible,有没有办法从PostgreSQL服务器获取登录卷的加密密码 为了深入了解我的问题,我正在尝试通过Ansible管理postgres用户的密码。为此,我想检查加密密码的当前值(例如,'md5…“)以查看它是否为当前值。如果不是,我将执行相应的alterroll命令来更新它 我知道我可以使用pg_dumpall查看密码,例如: $ pg_dumpall --roles-only <snip> CREATE ROLE postgres; ALTER ROLE postgres WITH .
postgres
用户的密码。为此,我想检查加密密码的当前值(例如,'md5…“
)以查看它是否为当前值。如果不是,我将执行相应的alterroll
命令来更新它
我知道我可以使用pg_dumpall
查看密码,例如:
$ pg_dumpall --roles-only
<snip>
CREATE ROLE postgres;
ALTER ROLE postgres WITH ... PASSWORD 'md5...';
$pg_dumpall--仅限角色
创建角色博士后;
改变角色的博士后与。。。密码“md5…”;
但这似乎不是一种非常可靠的方法。尝试读取密码字段
SELECT rolpassword FROM pg_authid
目录pg_authid包含有关数据库的信息
授权标识符(角色)。角色包含以下概念:
“用户”和“组”。用户本质上只是一个具有
rolcanlogin标志集。任何角色(有或没有rolcanlogin)都可以
其他成员角色;见pg_认证成员
由于此目录包含密码,因此不能公开
可读的。pg_角色是pg_authid上的一个公开可读视图,该视图
清空密码字段
SELECT rolpassword FROM pg_authid
第19章包含有关用户和权限的详细信息
管理层
因为用户标识是集群范围的,所以pg_authid在整个集群中共享
群集的所有数据库:每个群集只有一个pg_authid副本
群集,而不是每个数据库一个
当使用md5时,
pg_authid
中的密码与encrypthion之前的用户名连接在一起,因此将其与裸密码的md5进行比较是没有用的。()