Postgresql 如何连接到macOS上的postgres用户

Postgresql 如何连接到macOS上的postgres用户,postgresql,Postgresql,在过去,我有理由相信我在macOS上使用了一个postgres用户。但是,我在我的catalina笔记本电脑上的brew安装版本中没有看到它: sudo -u postgres sudo: unknown user: postgres sudo: unable to initialize policy plugin 我是不是漏了一步?我能够查看该笔记本电脑上的多个数据库: aact2=# \l List of databases

在过去,我有理由相信我在macOS上使用了一个
postgres
用户。但是,我在我的
catalina
笔记本电脑上的brew安装版本中没有看到它:

sudo -u postgres
sudo: unknown user: postgres
sudo: unable to initialize policy plugin
我是不是漏了一步?我能够查看该笔记本电脑上的多个数据库:

aact2=# \l
                               List of databases
    Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
------------+-------+----------+-------------+-------------+-------------------
 aact       | steve | UTF8     | C           | C           |
 aact1      | steve | UTF8     | C           | C           |
 aact2      | steve | UTF8     | C           | C           |
 aactold    | steve | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres   | steve | UTF8     | C           | C           |
 template0  | steve | UTF8     | C           | C           | =c/steve         +
            |       |          |             |             | steve=CTc/steve
 template1  | steve | UTF8     | C           | C           | =c/steve         +
            |       |          |             |             | steve=CTc/steve
(10 rows)
我需要执行哪些步骤才能拥有可访问的
postgres
数据库超级用户

更新以下是
\du

aact2=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 bluej     |                                                            | {}
 steve     | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
另一次更新@AdrianKlaver怀疑
steve
用户是超级用户,显然他是对的

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

我不相信steve是超级用户的原因是,
create role
由于权限错误而失败。作为一项单独的任务,我必须回去看看为什么那样做失败。

这里有两个问题。第一,没有系统用户postgres。第二,Postgres集群是作为用户
steve
创建的(
initdb
),因此集群的
superuser
steve
,因为默认情况下
initdb
使用运行它的系统用户的用户名。仅供参考,可通过以下操作在初始更改:


在任何情况下,只要您知道谁是
超级用户
,它实际上并不重要。

模板1显示了什么?另外\du?@AdrianKlaver为了保密,我没有显示所有的数据库-但是现在已经包括了模板和
template1
在那里:请参阅更新的OP。我还包括了
\du
,所以看起来Postgres实例是作为超级用户安装的
steve
。我猜没有
postgres
系统用户。我不是Mac用户,但我确实找到了这些用于列出系统用户的命令:
dscl。列出/用户并筛选出守护进程/进程帐户。list/Users | grep-v'.
我第一次尝试了它-当以
steve
的身份登录时。由于权限问题,我无法创建新角色。但现在我看了看,这应该是可能的。请回答,我会奖励你的。
-U username
--username=username

    Selects the user name of the database superuser. This defaults to the name of the effective user running initdb. It is really not important what the superuser's name is, but one might choose to keep the customary name postgres, even if the operating system user's name is different.