我想知道如何在postgresql中恢复超级用户帐户。
我意外取消选中了我的本地postgres
帐户的超级用户权限。它是此postgresql实例中唯一的超级用户帐户。
现在我无法登录本地服务器。
我尝试使用:
#psql -U postgres
但它不起作用。
你能帮我解决这个问题,并为我提供解决问题的详细解决方案吗?
答案 0 :(得分:3)
你是从shell做到的:
首先将您的用户更改为postgres
一个:> su - postgres
进入postres run-> > psql
在postgres内部运行此SQL查询:ALTER USER postgres WITH SUPERUSER;
要查看用户运行的权限:\du
为了将来参考,请查看Alter user documentation。
First Edit - ŁukaszKamiński的好点
你必须按照account on postgresql中的指示以单一模式运行它(ŁukaszKamiński用于粘贴链接)。
如果您在Windows上,则无法在链接中运行命令,因为它们应在* nix环境中运行(即在debian上或在此链接上克隆)。
在Windows上你必须:
run
- >停止服务services.msc
并找到该服务
(也可以通过net stop <exact name of the service>
在命令行完成)cmd.exe
(作为管理员 - &gt;不再需要PG9.6甚至阻止者 - 谢谢你ŁukaszKamiński)postgres
可执行文件,例如c:\Program Files\PostgreSQL\10.0\bin> postgres.exe --single -D "c:\Program Files\PostgreSQL\10.0\data"
ALTER USER postgres WITH SUPERUSER;
以重新拥有超级用户。run
开始 - &gt; services.msc
并找到服务(也可以通过net start <exact name of the service>
在命令行完成)