不小心删除了 postgres 默认超级用户权限 - 我可以取回吗?

Accidently removed postgres default superuser privileges - can I get it back?

我在 Webmin 中不小心取消了复选框 "Can create databases?" 和 "Can create users?"

愚蠢,我知道。

但是由于它需要一个拥有 edit/create 用户超级用户权限的用户,有没有办法从 linux 终端解决这个问题?

我知道可以重设密码,但我一直无法找到如何重设默认超级用户 postgres 的 roles/privileges。这甚至可能还是我必须重新安装?

有一个单用户模式,您始终拥有超级用户能力:

作为 root

service postgresql stop

作为用户postgres:(你可能需要更改版本号(这里是9.1) 非 .deb 发行版在这里也可能有不同的路径。 第一个路径是 postgres 二进制文件,第二个是目录 包含 postgresql.conf.

/usr/lib/postgresql/9.1/bin/postgres --single -D /etc/postgresql/9.1/main/

在新命令行上

alter user postgres with superuser;

ctrl-d退出。

作为根用户:

service postgresql start

可以使用类似的策略来设置或重置密码等。