PostgreSQL上使用现有用户登录失败

18

我刚开始尝试使用PostgreSQL。我的目标是创建一个拥有与postgres相同权限的新用户,然后为我的ror应用程序创建一个数据库。我能够在postgres下登录。我已经创建了一个名为Jason的用户,这很好,但是当我执行sudo -u用户名 psql时,我收到以下错误信息...

sudo: unknown user: Jason
sudo: unable to initialize policy plugin

我可以通过在我的postgres控制台中检查\dg来确定用户名是否存在。

                         List of roles
Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
Jason     | Superuser, Create role, Create DB, Replication | {}
postgres  | Superuser, Create role, Create DB, Replication | {}

这个问题是什么原因引起的?此外,我已经检查了我的本地pg_hba.conf文件,并且有我认为是正确的设置。

# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5
1个回答

20
你混淆了系统用户数据库用户。错误消息来自sudo,与PostgreSQL完全无关。
要登录为数据库用户Jason:
psql -U Jason

当然,您需要提供密码,除非未设置无密码访问。同行身份验证仅适用于与系统用户名称相同的用户("Jason")。
关于psql的更多信息,请参阅出色的手册此处,有关身份验证方法的信息请参阅此处


8
现在我收到了这个错误... psql: FATAL: 用户"Jason"的对等身份验证失败 - thank_you
1
我已经成功登录,但现在需要为Jason更改密码,因为它不起作用了。感谢您的帮助和正确的答案! - thank_you
@jason328:很酷。我在手册中添加了关于psql和身份验证的指针。 - Erwin Brandstetter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接