创建了以下postgres用户:
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolconfig | oid
-------------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+-------
myuser | f | t | f | t | f | t | f | -1 | ******** | | | 24577
然后做了这个:
alter user myuser with unencrypted password 'asdf';
然后我尝试创建一个数据库:
createdb -U myuser -W mydb
我输入了密码'asdf',但后来得到了这个:
createdb: could not connect to database postgres: FATAL: Peer authentication failed for user "myuser"
此用户具有rolcreatedb权限,为什么这不起作用?
答案 0 :(得分:0)
您指定的命令with encrypted password 'asdf';
加密到asdf
的明文密码不会是asdf
。您需要specife with unencrypted password
或计算加密值。最好使用psql中的\password
命令。
此外,您需要在pg_hba.conf
文件中指定允许密码验证;默认情况下(我相信)只会将您作为unix用户进行身份验证,除非您是超级用户。
答案 1 :(得分:0)
检查 pg_hba.conf 文件并查找以下行:
local all all trust
在文件末尾,您可以尝试从信任更改为 md5 ,之后您必须重新加载该服务。这是pg_hba.conf的解释:
方法可以是"信任","拒绝"," md5","密码"," gss" ," sspi", " ident"," peer"," pam"," ldap"," radius"或" cert"。注意 "密码"以明文形式发送密码; " MD5"是优选的 它发送加密密码。
有关新用户的更多信息,请访问:
https://wiki.debian.org/PostgreSql#New_User_and_database