PostgreSQL@15 homebrew公式设置的postgres用户是什么?

i7uq4tfw  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(136)

后台

我是Postgres的新手,目前正在学习使用它的文档。我无法理解Postgres用户。
我注意到我可以在不输入任何密码的情况下运行psql postgres,并且我有能力创建和修改用户。我正在尝试确定用户postgres没有密码是否正常,或者是否应该手动设置一个密码。

What I've Tried

我试图在Postgres 15文档中找到解释,但只能找到有限的解释here。文档是相当广泛的,所以尽管我尽了最大的努力,我还没有能够找到一个更好的解释。
我还找到了this question,上面的答案说你可以使用\du来确定用户名。当我运行这个命令时,它输出我的计算机用户名而不是“postgres”,并表明我是超级用户。

postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 ciesinsg  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

简单的问题

所以我的问题是这个postgres用户是什么,没有密码离开它安全吗?

附加信息

我使用的PostgresQL@15安装使用自制的M2 MBP。
我也明白,建议在新数据库中设置新用户并将其设置为所有者。我只是担心,如果我不采取预防措施,postgres用户缺乏身份验证可能会导致一个坏的行为者改变我现有的用户。

说明 *

这个问题是基于我对PostgreSQL入门文档的错误解释。我在没有编辑问题的情况下发布了这个澄清,以防其他人也有类似的困惑。
psql postgres实际上连接到postgres数据库,而不是postgres用户。根据Ardian的回复,this homebrew documentation概述了公式如何设置数据库和所有权。

uqzxnwby

uqzxnwby1#

这是Postgres社区文档不包括的打包决定,因为这超出了他们的权限。当一个Postgres示例被设置时,有一个操作系统用户创建/拥有集群,还有一个数据库超级用户被创建来管理集群的启动。按照惯例,这两个用户都被命名为postgres。有关详细信息,请参阅initdb。这是一个约定,而不是一个要求,下游打包者可以创建自己的用户。在Homebrew的情况下,安装软件包的用户的用户名是拥有集群的OS用户。它还用于创建数据库超级用户名。根据psql文档运行psql postgres时,您将以运行psql的操作系统用户身份连接到postgres数据库。在本例中,它与数据库超级用户名匹配。不需要密码,因为pg_hba.conf已设置为不需要本地连接的数据库密码。

相关问题