jox*_*oxl 5 postgresql ansible
有没有办法从 PostgreSQL 服务器获取登录卷的加密密码?
为了深入了解我的问题,我正在尝试postgres通过 Ansible管理用户的密码。为此,我想检查加密密码的当前值(例如'md5...')以查看它是否为当前值。如果不是,我会执行适当的ALTER ROLL命令来更新它。
我知道我可以pg_dumpall用来查看密码,例如:
$ pg_dumpall --roles-only
<snip>
CREATE ROLE postgres;
ALTER ROLE postgres WITH ... PASSWORD 'md5...';
Run Code Online (Sandbox Code Playgroud)
但这似乎不是一种非常可靠的方法。
尝试读取 rolpassword 字段。
SELECT rolpassword FROM pg_authid
Run Code Online (Sandbox Code Playgroud)
目录 pg_authid 包含有关数据库授权标识符(角色)的信息。角色包含“用户”和“组”的概念。用户本质上只是一个设置了 rolcanlogin 标志的角色。任何角色(有或没有 rolcanlogin)都可以有其他角色作为成员;见 pg_auth_members。
由于此目录包含密码,因此不得公开读取。pg_roles 是 pg_authid 上的一个公开可读视图,它会清除密码字段。
第 19 章包含有关用户和权限管理的详细信息。
因为用户身份是集群范围的,所以 pg_authid 在集群的所有数据库之间共享:每个集群只有一个 pg_authid 副本,而不是每个数据库一个。
| 归档时间: |
|
| 查看次数: |
11846 次 |
| 最近记录: |