在访问 postgres 数据库时,我收到一条错误消息
FATAL: Peer authentication failed for user "myuser"
要解决此错误,我需要更改数据库所有者,例如
ALTER DATABASE dbname OWNER TO 'all';
all 不是我系统中的用户,但我想让这个数据库对系统中的所有用户可用。
我确信有办法做这样的事情。谁能帮我!
在访问 postgres 数据库时,我收到一条错误消息
FATAL: Peer authentication failed for user "myuser"
要解决此错误,我需要更改数据库所有者,例如
ALTER DATABASE dbname OWNER TO 'all';
all 不是我系统中的用户,但我想让这个数据库对系统中的所有用户可用。
我确信有办法做这样的事情。谁能帮我!
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:
md5
authentication; andCREATE 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.
在你的文件系统中找到 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
我相信它会起作用的!
对等身份验证意味着 PostgreSQL 将只允许 OS 用户 ,admin
以 身份连接admin
或 OS 用户myuser
以 身份连接 PostgreSQL myuser
。
这是因为它在pg_hba.conf
文件中有这样的条目
local all all peer
如果你用这个替换它
local all all trust
那么托管 PostgreSQL 数据库的同一操作系统上的所有用户都可以自由连接。