【问题标题】:Check if a role in PostgreSQL has a password set检查 PostgreSQL 中的角色是否设置了密码
【发布时间】:2014-07-01 18:01:45
【问题描述】:

我想知道如何验证一个角色(用户只是一种特定的角色)是否在 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       | ******** |          | 

【问题讨论】:

    标签: postgresql admin


    【解决方案1】:

    密码存储在pg_shadow

    在文档中:

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

    所以你应该select * from pg_shadow;

    您还应该检查pg_authid 表。

    【讨论】:

    • 注意,您必须是 PostgreSQL 超级用户才能访问这些表。在 RDS 上,您是不等效的 RDS_SUPERUSER,您无法访问这些表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多