访问postgres数据库时出现错误
FATAL: Peer authentication failed for user "myuser"
解决此错误我需要更改数据库所有者,如
ALTER DATABASE dbname OWNER TO 'all';
所有人都不是我系统中的用户,但我想让系统中的所有用户都可以使用此数据库。
我确信有办法做这样的事情。任何人都可以帮助我!
答案 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只允许操作系统用户admin
以admin
或OS用户myuser
连接,以myuser
连接到PostgreSQL。
这是因为它在pg_hba.conf
文件中有一个条目,如此
local all all peer
如果用此替换
local all all trust
然后,托管PostgreSQL数据库的同一操作系统上的所有用户都可以自由连接。