2013-03-26 146 views
2

虽然accesing Postgres数据库我得到一个错误说,让PostgreSQL数据库

FATAL: Peer authentication failed for user "myuser" 

解决这个错误,我需要改变数据库所有者像

ALTER DATABASE dbname OWNER TO 'all'; 

一切都不是用户在我的系统中,但我想让这个数据库可供系统中的所有用户使用。

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

回答

2

您需要read the Client Authentication section of the manual,特别是讨论pg_hba.conf的部分。 PostgreSQL的手册和教程非常全面,值得一读。

Stack Overflow,superuser.com,serverfault.com和dba.stackexchange.com上有很多问题,涵盖了pg_hba.conf,所以我不会重复已有的丰富内容。

非常短的版本:

  • 使用md5认证;和
  • CREATE USER您希望能够登录的所有用户或让他们都以共享身份登录。

阅读认证和安全手册章节,以避免今后痛苦和问题。

0

等验证意味着,PostgreSQL将只允许OS用户,admin,连接作为admin,或OS用户myuser连接到PostgreSQL作为myuser

这是因为它有这样的

local all all peer 

pg_hba.conf文件中的条目如果您使用此

local all all trust 

替换它,然后在该主机将PostgreSQL数据库相同的操作系统的所有用户能够自由连接。

1

在你的文件系统使用

locate pg_hba.conf 

然后找到你的Postgres的版本发现pg_hba.conf文件。

编辑使用

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

文件如果你有下面这行:

local all all  peer 

然后将其更改为:

local all all  md5 

我相信它会工作!