在 postgres 服务器上恢复超级用户帐户

art*_*hur 2 postgresql role

我对 postgres dbms 有一个完全好奇的情况。我已经安装了数据库,由于我的安装脚本配置错误,我将超级用户角色设置为普通用户。现在我有一个完全全新的 postgres 安装,只有模板数据库和一个几乎什么都不做的单个用户“postgres”。我怎样才能让 postgres 用户再次成为超级用户?

我尝试在 ubuntu 12.04 下重新安装服务器,aptitude reinstall postgresql-9.1但角色似乎不受影响。很可能是因为重新安装不会影响记录角色的文件。

Cra*_*ger 5

超级用户权限不在任何配置文件中,它们是pg_catalog.pg_authid数据库表的一部分,在 PostgreSQL 安装中的所有数据库之间共享。

您需要停止 PostgreSQL 服务器,然后以单用户模式重新启动它,它始终以超级用户身份运行。

在那里,您可以ALTER USER myuser SUPERUSER授予超级用户权限。退出单用户模式,并启动服务器备份。

确切的细节与发行版和版本有关,但类似于:

service postgresql stop
sudo -u postgres postgres --single /var/lib/pgsql/9.1/main/data

ALTER USER postgres SUPERUSER;

(control-D to exit)

service postgresql start
Run Code Online (Sandbox Code Playgroud)

在某些系统上,您可能需要使用postgres可执行文件的显式路径,例如/usr/pgsql-9.1/bin/postgres. 同样,路径可能因版本和发行版而异。