2

在访问 postgres 数据库时,我收到一条错误消息

FATAL:  Peer authentication failed for user "myuser"

要解决此错误,我需要更改数据库所有者,例如

ALTER DATABASE dbname OWNER TO 'all';

all 不是我系统中的用户,但我想让这个数据库对系统中的所有用户可用。

我确信有办法做这样的事情。谁能帮我!

4

3 回答 3

2

You need to read the Client Authentication section of the manual, particularly the part that discusses pg_hba.conf. PostgreSQL's manual and tutorials are fairly comprehensive and are well worth a read.

There are lots of questions on Stack Overflow, superuser.com, serverfault.com and dba.stackexchange.com that cover pg_hba.conf so I won't repeat what's already available in abundance.

Very short version:

  • Use md5 authentication; and
  • CREATE USER all the users you want to be able to log in or have them all log in as a shared identity.

Please read the manual sections on authentication and security to avoid future pain and problems.

于 2013-03-26T07:34:38.207 回答
1

在你的文件系统中找到 pg_hba.conf 文件使用

locate pg_hba.conf

然后找到你的 postgres 的版本。

使用编辑文件

sudo nano /etc/postgresql/9.1/main/pg_hba.conf

如果您有以下行:

local   all    all     peer

然后将其更改为:

local   all    all     md5

我相信它会起作用的!

于 2013-03-26T11:16:00.963 回答
0

对等身份验证意味着 PostgreSQL 将只允许 OS 用户 ,admin以 身份连接admin或 OS 用户myuser以 身份连接 PostgreSQL myuser

这是因为它在pg_hba.conf文件中有这样的条目

local   all    all    peer

如果你用这个替换它

local   all   all    trust

那么托管 PostgreSQL 数据库的同一操作系统上的所有用户都可以自由连接。

于 2013-03-26T11:13:06.423 回答