2

我是 PostgreSQL 新手。我已经安装了 PostgreSQL 9.6,我正在使用 psql 以及 PGADMIN4。这是一个练习。

我已经安装了 PostgreSQL,默认情况下它安装了 PGADMIN4 和 psql shell。它还创建了一个名为 postgres 的用户和一个名为 postgres 的数据库。

我通过右键单击 PGAdmin 中的“登录/组角色”创建了一个名为 Joe 的新用户,然后输入了 Joe 所需的详细信息。我希望乔使用 postgres 数据库。因此,我在 PGAdmin 中的 Databases(1) 选项下右键单击 postgres db,并将所有者从 postgres 更改为 Joe。

然后我打开了psql。

在此处输入图像描述

从图中可以明显看出我的用户名仍然是 postgres。但是我在 pgadmin 中把它改成了 Joe。

我希望它是乔。

我的印象是,如果我在 pgadmin 中进行一些更改,那么它们将反映在 psql 中。

如果我错了,请纠正我。

1) 我想在 psql 中将我的用户名从 postgres 更改为 Joe。

2) 这个 Joe 应该使用 db postgres。Joe 应该能够使用 psql shell 在 postgres db 中创建模式、表等。

4

1 回答 1

3

有一件事你是对的:你使用 pgAdmin 4 对数据库集群所做的所有更改都将是可见的psql,反之亦然。

joe使用 pgAdmin 4 创建了一个用户,该用户将通过psql: 可见,只需键入\du和用户postgresjoe并将显示。

但是您错误地假设您使用 pgAdmin 4 创建的任何用户都将自动成为psql.

两个小思想实验:

  • 如果您使用 pgAdmin 创建三个用户会怎样——其中哪一个应该是新的默认用户psql
  • psql必须在连接数据包中指定数据库用户。它怎么知道你在 PostgreSQL连接到数据库之前就创建了一个新用户?

但是很容易实现你想要的。

要更改psql用于连接数据库的默认用户,请将环境变量设置PGUSERjoe. psql以同样的方式,您可以通过设置PGDATABASE环境变量来更改连接的默认数据库。

于 2017-03-18T20:16:48.093 回答