我尝试在Ubuntu 20.04上安装的PostgreSQL中创建一个新用户:
$ sudo -u postgres createuser --superuser tommy
但当我尝试使用该用户创建数据库时,它显示为未知用户:
$ sudo -u tommy createdb tommy_db
sudo: unknown user: tommy
sudo: unable to initialize policy plugin
我的想法是,我已经知道有UNIX用户和PostgreSQL用户,我不知道我是否必须首先创建一个UNIX用户tommy。
我想利用这篇文章,问问PostgreSQL用户和UNIX用户在PostgreSQL中的数据库管理有什么区别。
**PD:**如果我在plsql中使用/du列出用户,我可以看到创建的用户tommy:
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
tommy | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
2条答案
按热度按时间7xllpg7q1#
您的系统可能默认使用简单的“对等”身份验证,这是基于Linux的包管理器在为您创建数据库时使用的常见默认设置。
要继续使用该设置,您需要将“tommy”设置为Linux用户。或者,您需要编辑pg_hba.conf以选择不同的方法,如md5(密码)或gss(Kerberos),或者添加identMap沿着“peer”以描述哪些操作系统用户可以作为哪些数据库用户登录。
Linux用户和PostgreSQL用户之间的唯一连接是使用对等身份验证创建的连接。
unhi4e5o2#
确保使用
sudo su
或sudo -i
以root用户身份登录因此,这可能是问题的一部分-当您从root帐户使用
sudo -u postgres
时,它试图以非root用户postgres的身份访问root的主目录。应该很管用。