检查PostgreSQL中的角色是否设置了密码

aef*_*aef 18 postgresql admin

我想知道如何验证角色(用户只是一种特定类型的角色)是否在PostgreSQL 9.1中设置了密码.

我尝试了命令\dg+,\du+但他们没有向您显示任何密码相关信息.我也使用了以下查询,但它没有帮助,因为它的无差异(我很确​​定postgresql用户在这种情况下没有设置密码):

SELECT * FROM pg_user;

 usename  | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd  | valuntil | useconfig 
----------+----------+-------------+----------+-----------+---------+----------+----------+-----------
 postgres |       10 | t           | t        | t         | t       | ******** |          | 
 aef      |    16201 | t           | t        | t         | t       | ******** |          | 
Run Code Online (Sandbox Code Playgroud)

jdi*_*ver 25

密码存储在pg_shadow中

在文档中:

密码(可能是加密的); 如果没有则为null.有关加密密码的存储方式的详细信息,请参阅pg_authid.

所以你应该 select * from pg_shadow;

您还应该检查pg_authid表.