2015-01-05 2 views
1

Изнутри Webmin я случайно не отмечил галочкой «Может ли создавать базы данных?» и «Можете создавать пользователей?»Случайно удаленные привилегии суперпользователя по умолчанию postgres - могу ли я вернуть его?

Глупо, я знаю.

Но поскольку для редактирования/создания пользователя требуется пользователь с привилегиями суперпользователя, есть ли способ исправить это из терминала linux?

Я знаю, что можно сбросить пароль, но мне не удалось выяснить, как сбросить роли/привилегии postgres по умолчанию суперпользователя. Возможно ли это, или мне нужно сделать переустановку?

+0

У вас есть доступ к серверу под управлением Postgres? Вы можете войти в базу данных у пользователя postgres и изменить роль с разрешениями CREATEDB и CREATEUSER. – andrefsp

+0

У меня есть полный доступ к моему выделенному серверу, на котором работает PostgreSQL, однако я заблокировал себя. Единственный пользователь, который существует, - это по умолчанию, postgres, но так как я был настолько глуп, чтобы удалить создание пользовательских/созданных привилегий базы данных из этот пользователь, у меня нет возможности редактировать/добавлять/делать что-либо:/Я надеялся, что есть файл или что-то, что я мог бы редактировать с помощью sudo в терминале. Когда я пытаюсь изменить пользователя postgres, я получаю эту «ОШИБКУ: должен быть суперпользователем, чтобы изменять суперпользователей» - так что я думаю, что мои вопросы: добавить суперпользователя без учетной записи суперпользователя. :/ – Dac0d3r

+0

Итак, если у вас есть полный доступ через терминал, ничего не останавливает вас до psql в postgres и меняет его. Войдите в перминал от «sudo -u postgres psql -h 127.0.0.1», а затем введите «ALTER USER postgres CREADEDB CREATEUSER». Это должно сделать трюк. – andrefsp

ответ

8

есть однопользовательский режим, где всегда есть суперпользователя возможности:

как корень

service postgresql stop 

, как пользователь Postgres: (возможно, потребуется изменить номер версии (здесь 9.1)

У не .deb дистрибутивов, вероятно, тоже будет другой путь. первый obe - двоичный файл 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 

, кажется, работает здесь,

+0

ха-ха, на самом деле я просто получил его на работу, и когда я проверил, я увидел ваше решение, которое почти точно такое же. Хотя я просто «изменил пользовательский постгрес SUPERUSER»; – Dac0d3r

+0

выше должно работать и для окон, просто администратор подставок для «root» и использовать gui для запуска/остановки службы, а 'runas' - для postgresql.exe. – Jasen

+1

Ты спасатель. Мне пришлось копать немного в Postgres.app, чтобы найти мусор и конф, но это было потрясающе ... –

Смежные вопросы