nykakdelishki
@nykakdelishki
Системный аналитик

Как дать пользователю права суперюзера без использования стандартного пользователя postgres?

Я скачал PostgreSQL через chocolatey

Вот с такими параметрами(не уверен что они сработали, потому что choco во время установки сгенерировал мне новый пароль):
choco install postgresql --params '/Password:test /Port:5433' --ia '--enable-components server,commandlinetools'


Дальше я решил зайти через учетную запись написав команду
psql
и получил
Пароль пользователя Username:
Не один из паролей не подошел(не сгенерированный, не введенный в choco,не системный)
Выходит ошибка :
psql: ошибка: подключиться к серверу "localhost" (::1), порту 5432 не удалось: 
ВАЖНО:  пользователь "Username" не прошёл проверку подлинности (по паролю)

Я на гуглил как все таки попасть в psql и ввел команду
psql -U postgres

у меня все успешно зашло, но я получил новую проблему у меня создался в в папке пользователей(C:/Users) новый пользователь postgres... Что меня не очень то устраивает. Переустановил postgresql удалил пользователя.

Как мне быть?
Можно ли зайти в psql за моего Username или хотя бы сделать createdb без пользователя postgres?

Примечания PostgreSQL чистый. Все файлы конфигов не менял
  • Вопрос задан
  • 1202 просмотра
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Судя по всему ты следуешь какой-то инструкции. По обучению наверное. Смотри если смысл - создать бд и стать владельцем - то это все не нужно. Качай постгрес под Windows и ставь его каким угодно способом. Базу табличное пространство и пользователя можешь создать скриптами. Если твой пользователь - владелец базы - то этого достаточно чтоб делать почти все что нужно.
CREATE TABLESPACE tbs1 OWNER joker LOCATION '.....';
CREATE USER joker WITH PASSWORD '123';
CREATE DATABASE pingwin OWNER joker TABLESPACE tbs; 
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO joker;

Менеджер пакетов чоко любят преподаватели курсов которым нужна шаблонная конфигурация для обучения на windows-десктопах. Другого смысла в чоко я не вижу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nykakdelishki
@nykakdelishki Автор вопроса
Системный аналитик
Помог мне убийца джунов chatGPT
Он посоветовал:
psql -U postgres -d postgres

После этого нужно выполнить команду

CREATE USER new_user WITH SUPERUSER PASSWORD 'new_password';

Если выставить юзеру Username как в системе, тогда будет достаточно только createdb для создания(без параметров), что очень удобно и чего я пытался достичь

Из минусов
DROP ROLE postgres;
Удалить самого postgres нельзя так как он используется системой
63c32ae3782f7921797735.png

P.S. Отвечать на свои же вопросы не круто, а тем более отмечать решением :) (но вдруг кому то поможет) поэтому отмечу решением mayton2019
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы