使用新创建的postgres用户createdb

时间:2013-12-03 21:07:46

标签: postgresql

创建了以下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权限,为什么这不起作用?

2 个答案:

答案 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