我在 Ubuntu 上安装了 postgres,它将我切换到 postgres 用户。我打开并psql
创建了一个数据库,然后决定切换回 root。但是,它不允许我:
sudo su -
结果它问我
[sudo] password for postgres:
我尝试输入只是为了获得
Sorry, try again
然后我决定尝试使用以下方法更改 postgres 密码这个答案:
ALTER USER postgres WITH PASSWORD 'postgres';
它似乎起作用了,但在尝试再次切换到 root 后,它仍然不允许我这样做。
答案1
看起来你混淆了两件事:
postgres
系统用户postgres
SQL 数据库用户
两者之间唯一的关系是,在 PostgreSQL 安装中,数据库用户postgres
通过对等体身份验证方法:数据库服务器检查系统请求以数据库用户身份访问数据库的用户postgres
也称为postgres
。另外,数据库服务器本身以系统用户身份运行postgres
。
不可能从数据库中更改系统。在数据库帐户上提供密码不会改变以下事实:系统用户postgres
没有须藤权限,并且肯定是禁用的密码,因此默认情况下只允许 root 使用它(但不能相反)。
因此,如果您想成为root
,您无法从postgres
系统帐户执行此操作,这是一件好事:如果数据库服务器(其进程也以系统用户身份运行postgres
)受到损害,则无法升级到root
从该服务器访问。
只需再次登录到您用于安装 postgreSQL 的帐户:直接使用该root
帐户(通常不在 Ubuntu 上完成)或(通常在 Ubuntu 上完成)在安装系统时配置的用户,使用 uid 1000,在 Ubuntu 上默认允许执行此操作sudo su -
。
答案2
如果要退出postgres用户,只需输入“exit”。
它将返回到 root 用户