#postgresql
#postgresql
Вопрос:
В терминале, когда я пишу psql, он входит в систему «Coyr». Я хочу, чтобы «postgres» был основным пользователем и имел все атрибуты. Как я могу это сделать?
Комментарии:
1. Роль
postgres
является суперпользователем, поэтому у нее есть все права. Не уверен, чего еще вы хотите и почему?2. sudo касается изменения пользователя вашей ОС, а не пользователя PostgreSQL.
3. Какая ОС и версия? Как вы установили Postgres? Вы видите postgres, когда делаете
ls /home/
?4. ОС — macOS Catalina версии 10.15.7. Я установил Postgres с помощью brew. Когда я это делаю
ls /home/
, он продолжает показывать фактическую папку, в которой я нахожусь5. @wildplasser. Homebrew не является мертвым мозгом, нет требования, чтобы владельцем суперпользователя / кластера был postgres. Согласно документации initdb ‘На самом деле не важно, каково имя суперпользователя, но можно сохранить обычное имя postgres …’. Homebrew выбирает запуск от имени пользователя, устанавливающего, вот и все. К вашему сведению, разработчики создают свои собственные Postgres из исходного кода и тестируют на ферме сборки, которые охватывают все поддерживаемые варианты ОС.
Ответ №1:
Я предполагаю, что вы запускались initdb
как пользователь coyr
без этой -U
опции, и теперь вы хотите переименовать суперпользователя начальной загрузки.
Это просто:
- удалите
postgres
созданного вами пользователя - создайте нового суперпользователя
maxi
- подключитесь как
maxi
и запуститеALTER ROLE coyr RENAME TO postgres;
- подключитесь как
postgres
иDROP ROLE maxi;
При переименовании coyr
будет потерян пароль, поэтому, если он вам нужен, вам придется установить его снова.
Комментарии:
1. Спасибо, Лоренц, это имеет смысл. Я обнаружил, что обычно в некоторых репозиториях люди используют «postgres» в качестве имени пользователя. Какова наилучшая практика?. У вас есть какая-нибудь ссылка на конфигурацию Postgres в Mac?
2. Да, это неофициальный стандарт вызова суперпользователя начальной
postgres
загрузки, поэтому я бы назвал это «лучшей практикой».