无法从 postgres 返回 root:强制输入 postgres 密码,但该密码无效

无法从 postgres 返回 root:强制输入 postgres 密码,但该密码无效

我在 Ubuntu 上安装了 postgres,它将我切换到 postgres 用户。我打开并psql创建了一个数据库,然后决定切换回 root。但是,它不允许我:

sudo su - 

结果它问我

[sudo] password for postgres:

我尝试输入只是为了获得

Sorry, try again

然后我决定尝试使用以下方法更改 postgres 密码这个答案

ALTER USER postgres WITH PASSWORD 'postgres';

它似乎起作用了,但在尝试再次切换到 root 后,它仍然不允许我这样做。

答案1

看起来你混淆了两件事:

  • postgres系统用户
  • postgresSQL 数据库用户

两者之间唯一的关系是,在 PostgreSQL 安装中,数据库用户postgres通过对等体身份验证方法:数据库服务器检查系统请求以数据库用户身份访问数据库的用户postgres也称为postgres。另外,数据库服务器本身以系统用户身份运行postgres

不可能从数据库中更改系统。在数据库帐户上提供密码不会改变以下事实:系统用户postgres没有须藤权限,并且肯定是禁用的密码,因此默认情况下只允许 root 使用它(但不能相反)。

因此,如果您想成为root,您无法从postgres系统帐户执行此操作,这是一件好事:如果数据库服务器(其进程也以系统用户身份运行postgres)受到损害,则无法升级到root从该服务器访问。

只需再次登录到您用于安装 postgreSQL 的帐户:直接使用该root帐户(通常不在 Ubuntu 上完成)或(通常在 Ubuntu 上完成)在安装系统时配置的用户,使用 uid 1000,在 Ubuntu 上默认允许执行此操作sudo su -

答案2

如果要退出postgres用户,只需输入“exit”。

它将返回到 root 用户

相关内容