使postgresql数据库可供所有用户使用

时间:2013-03-26 07:32:10

标签: postgresql

访问postgres数据库时出现错误

FATAL:  Peer authentication failed for user "myuser"

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

ALTER DATABASE dbname OWNER TO 'all';

所有人都不是我系统中的用户,但我想让系统中的所有用户都可以使用此数据库。

我确信有办法做这样的事情。任何人都可以帮助我!

3 个答案:

答案 0 :(得分: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您希望能够登录的所有用户或让他们全部以共享身份登录。

阅读有关身份验证和安全性的手册部分,以避免将来出现疼痛和问题。

答案 1 :(得分: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

我相信它会奏效!

答案 2 :(得分:0)

对等身份验证意味着PostgreSQL只允许操作系统用户adminadmin或OS用户myuser连接,以myuser连接到PostgreSQL。

这是因为它在pg_hba.conf文件中有一个条目,如此

local   all    all    peer

如果用此替换

local   all   all    trust

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