我对 postgres dbms 有一个完全好奇的情况。我已经安装了数据库,由于我的安装脚本配置错误,我将超级用户角色设置为普通用户。现在我有一个完全全新的 postgres 安装,只有模板数据库和一个几乎什么都做不了的单个用户“postgres”。如何再次使 postgres 用户成为超级用户?
我尝试在 ubuntu 12.04 下重新安装服务器,aptitude reinstall postgresql-9.1
但角色似乎不受影响。很可能是因为重新安装不会影响记录角色的文件。
我对 postgres dbms 有一个完全好奇的情况。我已经安装了数据库,由于我的安装脚本配置错误,我将超级用户角色设置为普通用户。现在我有一个完全全新的 postgres 安装,只有模板数据库和一个几乎什么都做不了的单个用户“postgres”。如何再次使 postgres 用户成为超级用户?
我尝试在 ubuntu 12.04 下重新安装服务器,aptitude reinstall postgresql-9.1
但角色似乎不受影响。很可能是因为重新安装不会影响记录角色的文件。
超级用户权限不在任何配置文件中,它们是
pg_catalog.pg_authid
数据库表的一部分,在 PostgreSQL 安装中的所有数据库之间共享。您需要停止 PostgreSQL 服务器,然后以单用户模式重新启动它,它始终以超级用户身份运行。
在那里,您可以
ALTER USER myuser SUPERUSER
授予超级用户权限。退出单用户模式,并启动服务器备份。确切的细节有点依赖发行版和版本,但类似于:
在某些系统上,您可能需要使用
postgres
可执行文件的显式路径,例如/usr/pgsql-9.1/bin/postgres
. 同样,路径可能因版本和发行版而异。对于 Windows,必须:
runas /user:postgres cmd
)以单用户模式运行 postgres
从用户名(postgres)推断相关数据库的位置
执行必要的命令让您的用户恢复到异常状态(超级):
Ctrl-C 退出
请注意,早期 PGAdmin 16.1 中与打开用户属性相关的“错误”可能是原因。