Postgresql 意外删除了postgres的默认超级用户权限-我可以取回它吗?

Postgresql 意外删除了postgres的默认超级用户权限-我可以取回它吗?,postgresql,privileges,disaster-recovery,Postgresql,Privileges,Disaster Recovery,在Webmin内部,我意外地取消了“可以创建数据库”和“可以创建用户”复选框的标记 愚蠢,我知道 但是,由于编辑/创建用户需要具有超级用户权限的用户,有没有办法从linux终端解决这个问题 我知道可以重置密码,但我还无法找到如何重置默认超级用户postgres的角色/权限。这是可能的还是我必须重新安装?有一种单用户模式,在这种模式下,您始终具有超级用户功能: 作为根 service postgresql stop 作为用户postgres:(您可能需要更改版本号(此处为9.1) 非.deb发行

在Webmin内部,我意外地取消了“可以创建数据库”和“可以创建用户”复选框的标记

愚蠢,我知道

但是,由于编辑/创建用户需要具有超级用户权限的用户,有没有办法从linux终端解决这个问题


我知道可以重置密码,但我还无法找到如何重置默认超级用户postgres的角色/权限。这是可能的还是我必须重新安装?

有一种单用户模式,在这种模式下,您始终具有超级用户功能:

作为根

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

类似的策略可用于设置或重置密码等。

您有权访问运行postgres的服务器吗?您可以在postgres user中登录数据库,并使用CREATEDB和CREATEUSER权限更改角色。我有权完全访问运行PostgreSQL的专用服务器,但我已将自己锁定。唯一的用户e exists是默认的一个,postgres,但是由于我太愚蠢了,没有从该用户中删除创建用户/创建数据库权限,我没有办法编辑/添加/做任何事情:/I希望终端中有一个文件或东西,我可能可以用sudo编辑。当我尝试更改postgres用户时,我得到了这个结果“错误:必须是超级用户才能更改超级用户”-因此我想我的问题是如何在没有超级用户帐户的情况下添加超级用户。:/因此,如果您具有通过终端的完全访问权限,没有任何东西阻止您将psql添加到postgres并进行更改。请通过“sudo-u postgres psql-h 127.0.0.1”登录许可证,然后键入”ALTER USER postgres CREADEDB CREATEUSER".那应该可以trick@andrefsp问题是数据库用户postgres不再有这样做的权限,因此您需要在不检查权限的单用户模式下重新启动。但对于重新恢复丢失的密码,该方法工作得很好。哈哈,实际上我刚刚让它工作,当我检查回来时,我看到了您的解决方案,几乎是exact相同。虽然我刚刚做了“alter user postgres SUPERUSER”;但上面的内容也应该适用于windows,只需将administrator替换为“root”然后使用gui启动/停止服务,并
runas
启动到postgresql.exe。你是个救命恩人。我不得不在Postgres.app中翻找一下bin和conf,但这太棒了。。。