ERROR: must be superuser to alter superusers
不幸的是,我已经从PostgreSQL中的postgres用户中删除了超级用户权限。 目前我在PostgreSQL中没有任何超级用户。 我想做超级用户。 那我该怎么做呢? 每次我试图向超级用户发布postgres。 我正面临这个问题。
1 | Error : must be superuser to alter superusers. |
提前致谢,
(假设您在Ubuntu机器上具有root访问权限)
要以超级用户身份输入psql,您需要:
1 | sudo -u postgres psql |
正如这篇SO帖子所示
如果没有名为postgres的用户,您需要首先在系统上创建它,具有:
1 | sudo adduser newuser |
否则,如果您遇到密码未被接受或根本没有创建的问题,您可以在此处关注(Ubuntu 14.04相关)说明或有关用户帐户的更多信息,请点击此处
除了Craig Ringer的回答之外,如果你不小心降级了你唯一的PostgreSQL用户,这里是MacOS和Brew的程序:
您将不得不停止数据库系统并启动独立的后端,后端始终无条件地以超级用户身份运行。
您可以将此后端用于
在进入单用户模式之前完全停止数据库服务器非常重要。如果有postmaster,PostgreSQL单用户模式将拒绝启动,但要确保您应该确保系统上没有运行PostgreSQL进程。在(几乎)任何情况下你都不应该删除
究竟如何启动一个独立的后端取决于你的操作系统/发行版以及你如何安装PostgreSQL。您没有包含此信息,因此我只能在手册中指出
先做备份。
In the single-user mode, the session user will be set to the user with ID 1, and implicit superuser powers are granted to this user. This user does not actually have to exist, so the single-user mode can be used to manually recover from certain kinds of accidental damage to the system catalogs.
请参阅单用户模式的选项部分,以及底部的用法部分。您将要使用
1 2 | sudo systemctl stop postgresql-9.3.service sudo -u postgres /usr/pgsql-9.3/bin/postgres --single -D /var/lib/pgsql/9.3/data |
您的datadir和
对我有帮助:
1 | sudo -u gleb psql postgres |
gleb是我的mac系统用户