Первые шаги с PostgreSQL, создаём пользователя

hamster

Опубликован:
2026-09-19T11:58:57.713781+00:00
Отредактирован:
2026-09-19T11:58:57.713781+00:00
Статус:
публичный
2
0
0

Я думаю, что если в вашем браузере открыта эта страница моего уютного блога, вам не надо рассказывать о PostgreSQL и его возможностях, о том, почему и зачем он вам нужен. Случайных людей здесь не бывает. Сюда приходят только в результате целенаправленного поиска и только те, кто знает, зачем им нужен PostgreSQL, но увы, не знает, как с ним найти общий язык. Начиная с этой демонстрации, я намерен последовательно показывать, как я делал свои первые шаги с этой базой данных.

В этом блоге мы исследуем, в том числе, возможности великолепной операционной системы Debian и её составляющих. Если вы интересуетесь PostgreSQL, лиха беда начало, рано или поздно вы обязательно окажетесь один на один с Debian и его окружением. В особо тяжелых случаях вероятен даже контакт с голой консолью. Можете ни на секунду в этом не сомневаться. Проверено!

Исходные данные

В моём распоряжении есть компьютер с уже установленным и настроенным Debian, на следующем снимке экрана показан рабочий стол этой операционной системы:


3Iw5VYxSXl.jpg


Приглашение командной строки открытого на рабочем столе терминала говорит нам, что я работаю на машине virtual от имени hamster. На эту деталь следует обратить внимание, чуть позже эти данные помогут мне принять одно самое обыкновенное, но ключевое решение.

Передо мной стоит следующая задача: мне необходимо создать в этой операционной системе базу данных PostgreSQL, чтобы чуть позже использовать её с web-приложением для тестирования и изучения его возможностей. Таков план...

Установка PostgreSQL

Перед установкой PostgreSQL желательно убедиться, что ваш Debian правильно и адекватно локализован. Для этого обычно достаточно посмотреть на выхлоп команды locale и попробовать вбить в терминале текст на родном языке. Вот как это выглядит у меня.


scfSQ5VQ2u.png


Русские буквы печатает, таможня даёт добро...

Установить PostgreSQL очень не сложно, достаточно вбить в терминале всего лишь одну команду.

$ sudo apt install postgresql

LU39RMFAaJ.png


На снимке экрана мы видим чудесный выхлоп пакетного менеджера, в котором перечислены все зависимости, которые будут установлены сразу после того, как я нажму Enter на своей клавиатуре. Процесс займёт некоторое время, следует дождаться его полного завершения. Я покажу, как выглядит мой терминал сразу после завершения установки запрошенного ПО.


dt9NuvvALT.png


В представленном выхлопе видно, что кодовая страница и часовой пояс моей консоли автоматически унаследовались кластером PostgreSQL. Никаких дополнительных телодвижений в этом направлении делать не требуется.

Создаём пользователя

Казалось бы, что сразу после установки PostgreSQL можно приступать к своим непосредственным обязанностям администратора базы данных. Но стопэ, стоит остановиться на секундочку и подумать над следующим вопросом... А от чьего имени я собираюсь работать с PostgreSQL? Из выхлопа пакетного менеджера мы увидели, что все файлы и данные в только что созданной СУБД будут принадлежать пользователю postgres — это суперпользователь, для которого не предусмотрено никаких ограничений, работать от его имени небезопасно и нецелесообразно. Следовательно, мне нужен пользователь, от имени которого мои программы будут подключаться к СУБД и манипулировать данными. И это должен быть пользователь с ограниченными правами. И этого пользователя я должен создать средствами PostgreSQL.

Чуть выше в этом тексте я обращал внимание, от чьего имени я работаю в текущей сессии операционной системы, это hamster — скромный и непритязательный пользователь Linux. Логично будет предложить работать и с базой данных тоже от его имени. Создавая пользователя базы данных с именем, совпадающим с именем текущего пользователя операционной системы, я, как минимум, смогу в последствии подключаться к ней без ввода пароля. Иногда это бывает очень удобно и полезно.

На начальном этапе в варианте дефолтных настроек, создать нового пользователя средствами PostgreSQL можно только от имени postgres. Стать этим пользователем в терминале мне поможет sudo. Вбиваю в приглашение командной строки следующую команду:

$ sudo -i -u postgres

И вот как выглядит результат исполнения этой команды в моём терминале:


R6YMb4uTC3.png


Как видно на снимке экрана выше, приглашение командной строки поменяло свой вид и сообщает мне, что теперь в этом терминале я работаю от имени пользователя postgres. И это значит, что я без особого труда и препятствий могу создать нового пользователя PostgreSQL.

PostgreSQL предполагает совершенно различные сценарии использования конечным пользователем. На данный момент мне всего лишь нужна база данных для учебных целей, для отладки и тестирования web-приложения, для конструирования своих первых SQL-запросов. В процессе своих экспериментов я предполагаю подключаться к базе данных разными способами. Поэтому создавать пользователя я буду в интерактивном режиме, и новому пользователю очень желательно задать несложный пароль, такой, чтобы можно было быстро ввести и легко запомнить, для учебных целей я предпочитаю в качестве пароля две латинские буквы a.

С именем пользователя я уже определился, имя будет совпадать с именем текущего пользователя операционной системы. Вбиваю в терминале следующую команду:

createuser hamster -P -d --interactive

Здесь я указал имя нового, создаваемого пользователя, ключ -P требует назначить этому пользователю пароль для входа, а ключ -d даст ему возможность создавать собственные базы данных. Крайний ключ в команде (--interactive) предполагает интерактивный режим процесса создания пользователя. Вбиваю эту команду в терминале от имени postgres и жму Enter.


rvdeXuRs7P.png


Как видно на снимке экрана выше, программа запросила пароль и остановилась в ожидании пользовательского ввода. При вводе пароль не будет отображаться. За вводом пароля последуют ещё три интерактивных запроса, нужно будет повторить ввод пароля и выбрать полномочия и права новой роли, каждый раз выбирая желаемый вариант из двух предложенных — y или n. Как это выглядит в моём терминале можно увидеть на следующем снимке экрана.


ZF7PSQROIH.png


На два крайних интерактивных запроса я ответил отказом — не требуется для моих текущих задач. На этом миссию пользователя postgres можно считать завершенной, я сделаю exit в его терминале.

Создаём базу данных

Теперь, когда у меня есть пользователь базы данных, чьё имя совпадает с именем текущего пользователя операционной системы, я могу создать базу данных элементарной терминальной командой.

$ createdb webjournal

Имя можно будет выбрать любое, легко запоминающееся, в данном случае я создаю базу данных с именем webjournal.


qnYBcor2gl.png


Не сложно догадаться, что созданная база данных принадлежит пользователю hamster, и у этого пользователя не будет никаких препятствий и ограничений при администрировании этой базы данных. Good..!

В рамках этой демонстрации я не буду упражняться с запросами, всё только начинается, просто покажу для начала, что база данных существует, и к ней можно подключиться с помощью консоли psql, от имени текущего пользователя операционной системы, без ввода пароля. А сразу после успешного подключения я выйду обратно в терминал. Вот как это может выглядеть.

$ psql -d webjournal

0UNMSGKQjZ.png


Конечно же, созданная база данных на текущий момент не имеет в своём составе ни одной таблицы. Именно такая мне и нужна для одной весьма любопытной прикладной задачи. Можно считать, что все поставленные для этой краткой демонстрации цели достигнуты. Я думаю, что в рамках этого блога я ещё не раз вернусь к теме PostgreSQL и покажу некоторые нехитрые приёмы работы с ней посредством встроенной консоли psql. Оставайтесь на связи, следите за обновлением блога.


Для справки, созданную только что базу данных я намерен использовать в одной тематической демонстрации в соседнем блоге, и это может быть интересно всем заглянувшим сюда. Ни на что не намекаю... I'm just saying.

Метки: