,让PostgreSQL数据库
问题描述:
虽然accesing Postgres数据库我得到一个错误说,让PostgreSQL数据库
FATAL: Peer authentication failed for user "myuser"
解决这个错误,我需要改变数据库所有者像
ALTER DATABASE dbname OWNER TO 'all';
一切都不是用户在我的系统中,但我想让这个数据库可供系统中的所有用户使用。
我相信有办法做这样的事情。谁能帮我!
答
您需要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
您希望能够登录的所有用户或让他们都以共享身份登录。
请阅读认证和安全手册章节,以避免今后痛苦和问题。
答
等验证意味着,PostgreSQL将只允许OS用户,admin
,连接作为admin
,或OS用户myuser
连接到PostgreSQL作为myuser
。
这是因为它有这样的
local all all peer
在pg_hba.conf
文件中的条目如果您使用此
local all all trust
替换它,然后在该主机将PostgreSQL数据库相同的操作系统的所有用户能够自由连接。
答
在你的文件系统使用
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
我相信它会工作!