【问题标题】:default postgres user and password默认 postgres 用户和密码
【发布时间】:2013-11-20 06:46:19
【问题描述】:

我只是 postgresql 数据库管理的新手。 我一直在玩我没有创建的数据库。 试图了解已创建的不同角色。

我可以登录执行以下操作是否意味着 postgres 用户没有设置密码?

psql -U postgres 

我做了一个

`select * from pg_roles`

我可以看到有一个密码设置。 我找到了这篇文章:http://www.postgresql.org/message-id/4D958A35.8030501@hogranch.com 这似乎确认默认情况下 postgres 用户在那里...... 并且您必须明确设置密码。这是关于密码的第二部分,我不确定。默认情况下它是空白还是设置为?

我知道如果 pg_hba.conf 设置为信任来自 127.0.0.1 的所有内容,那么您可以从本地服务器登录而无需指定密码。这可能就是我的情况……我将通过更改 pg_hba.conf 文件进行测试…… 但是最好知道 postgres 用户的默认密码是什么。

谢谢。

【问题讨论】:

  • 没有默认密码。您可以通过将pg_hba.conf 中的“信任”更改为“md5”并重新加载配置文件(例如select pg_reload_conf())来验证这一点。同时检查~postgres/.pgpass 文件。

标签: postgresql


【解决方案1】:

pg_roles 不是可以判断用户是否有密码的视图,因为无论如何密码字段总是设置为********

这来自这个视图的定义(取自9.3版本):

select definition from pg_views  where viewname='pg_roles';

结果:

选择 pg_authid.rolname, pg_authid.rolsuper, pg_authid.rolinherit, pg_authid.rolcreaterole, pg_authid.rolcreatedb, pg_authid.rolcatupdate, pg_authid.rolcanlogin, pg_authid.rolreplication, pg_authid.rolconnlimit, '********'::text AS rolpassword pg_authid.rolvaliduntil, s.setconfig AS rolconfig, pg_authid.oid FROM (pg_authid 左连接 pg_db_role_setting s ON (((pg_authid.oid = s.setrole) AND (s.setdatabase = (0)::oid))));

注意rolpassword 列是如何被硬编码以显示任何内容的(我们可能想知道它为什么会存在。也许是为了向后兼容?)

另一方面,pg_shadow 视图在密码存储时显示密码,位于名为passwd 的列中。此视图只能由超级用户(通常:postgres 用户)读取。

例子:

create user foo unencrypted password 'foopassword';
create user bar encrypted password 'foopassword';
select usename,passwd from pg_shadow where usename in ('postgres','foo','bar');

普通 Debian 安装的结果:

用户名 |密码 ----------+-------------------------- 后勤 | 富 | foo密码 酒吧 | md50390570d30cb9a2f9cb7476f0763cf51

最初postgres 密码通常是空的,除了在安装程序倾向于要求它的Windows 上。在 Unix 上,pg_hba.conf 通常设置为只有操作系统用户 postgres 可以通过 Unix 套接字域以数据库用户 postgres 的身份登录,而无需密码。这是合理的默认安全策略。 Windows 没有 Unix 域套接字,并且最新版本的安装程序甚至不使用 postgres OS 用户,因此它实现了不同的默认安全策略是有道理的。

如果密码为空并且pg_hba.conf 要求传入连接的特定数据库/用户/来源的密码,则连接被拒绝。空密码和没有密码没有区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2021-02-18
    相关资源
    最近更新 更多