在PostgreSQL中恢复postgres用户

时间:2018-08-22 19:18:36

标签: postgresql superuser

我需要恢复postgres用户的超级用户特权,因为它失去了超级用户资格。

我无法在psql shell中做任何事情,它给出了消息

must be superuser to create superusers

系统为Ubuntu 16.04和PostgreSQL 9.5。
我可以恢复此postgres用户吗?

1 个答案:

答案 0 :(得分:0)

如果您设法从所有用户中删除超级用户特权,则必须以单用户模式启动数据库:

  1. 以操作系统用户postgres的身份停止数据库服务器:

    /path/to/postgresql/bin/pg_ctl stop -D /path/to/data/directory
    
  2. 以单用户模式启动服务器:

    /path/to/postgresql/bin/postgres --single -D /path/to/data/directory postgres
    

    现在您是超级用户。

  3. 恢复超级用户特权:

    ALTER ROLE postgres SUPERUSER
    
  4. 使用 CTRL + D (如果您是 CTRL + Z ,则退出会话在Windows上)。

  5. 以通常的方式重启PostgreSQL。