我正试图在安装在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用户和postgreSQL中的UNIX用户在数据库管理方面有什么区别。
PD:如果我在plsql中列出使用/du的用户,我可以看到创建的用户tommy:
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
tommy | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
您的系统可能正在使用简单的"对等";默认情况下的身份验证。这是基于Linux的包管理器在为您创建数据库时使用的常见默认值。
要继续使用该设置,那么你是的,你需要设置";tommy";作为Linux用户。或者,您必须编辑pg_hba.conf来选择不同的方法,如md5(密码(或gss(kerberos(,或者添加一个ident映射和";"对等";以描述哪些操作系统用户被允许作为哪些数据库用户登录。
Linux用户和PostgreSQL用户之间的唯一连接是通过使用对等身份验证创建的连接。
确保使用sudo su
或sudo -i
以root用户身份登录
因此,这可能是问题的一部分——当您从root帐户使用sudo -u postgres
时,它试图以非root用户postgres的身份访问root的主目录。
这应该很有效。