我正在按照本教程进行操作,并以 postgres 身份登录并运行:
createuser --interactive
提供名称并选择超级用户
然后:
createdb dogspot
但当尝试
sudo -i -u dogspot
我得到:
postgres@ip-172-31-12-126:/home/ubuntu$ sudo -i -u dogspot
sudo: unknown user: dogspot
sudo: unable to initialize policy plugin
但用户肯定存在,因为尝试再次创建用户时会提示用户已经存在。希望得到一些如何正确操作的提示。
数据库版本:
psql (PostgreSQL) 9.3.4
操作系统版本:
Ubuntu 14.04 LTS
更新:
似乎只需要创建具有相应名称的 Linux 用户即可:
sudo useradd -d /home/dogspot -m dogspot
sudo passwd dogspot
答案1
您混淆了 PostgreSQL 用户和操作系统用户。
PostgreSQL 用户可能没有相应的操作系统用户。
默认情况下,连接使用peer
身份验证,您必须以与您尝试连接的 PostgreSQL 用户同名的 OS 用户身份运行。你可以改变pg_hba.conf
它,适用于所有用户或仅适用于部分用户/数据库。有关更多详细信息,请参阅客户端身份验证章节。