Recover postgres user in PostgreSQL

限于喜欢 提交于 2019-12-11 06:10:41

问题


I need to recover the superuser privilege for the postgres user, because it lost the superuser qualification.

I cannot do anything in the psql shell, it gives the message

must be superuser to create superusers

The system is Ubuntu 16.04 and PostgreSQL 9.5.
Can I recover this postgres user?


回答1:


If you managed to remove superuser privileges from all your users, you'll have to start the database in single user mode:

  1. Stop the database server as operating system user postgres:

    /path/to/postgresql/bin/pg_ctl stop -D /path/to/data/directory
    
  2. Start the server in single user mode:

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

    Now you are a superuser.

  3. Restore the superuser privilege:

    ALTER ROLE postgres SUPERUSER
    
  4. Exit from the session with CTRL+D (or CTRL+Z if you are on Windows).

  5. Restart PostgreSQL the way you normally do it.



来源:https://stackoverflow.com/questions/51973732/recover-postgres-user-in-postgresql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!