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