PostgreSQL上的现有用户登录失败

问题描述 投票:17回答:1

我刚刚开始使用PostgreSQL。我的目标是在postgres之外创建一个具有所有相同特权的新用户,并为我的ror应用创建数据库。我可以在postgres下登录。我确实创建了一个名为Jason的用户,这很好,但是当我执行sudo -u username 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
postgresql login
1个回答
18
投票

您正在将系统用户数据库用户混淆。错误消息来自sudo,与PostgreSQL无关。

以数据库用户Jason的身份登录:

psql -U Jason

当然,只要未设置无密码访问,就需要提供密码。 Peer身份验证仅适用于同名的系统用户(“ Jason”)。优秀手册中有关psql here和身份验证方法here的更多内容。

© www.soinside.com 2019 - 2024. All rights reserved.