Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
После установки PostgreSQL использует метод аутентификации ident. Данный способ аутентификации использует учетные записи операционной системы в качестве разрешённого имени пользователя базы данных. Это означает, что если в операционной системе существует пользователь с таким же именем, что и роль в Postgres, то он может выполнять вход в качестве данной роли.
По умолчанию в ходе установки Postgres создает учетную запись c названием postgres, которая связана с аналогичной ролью. Поэтому для использования Postgres нам необходимо войти в эту учетную запись. Сделать это мы можем несколькими способами.
Для переключения учетной записи мы можем использовать следующую команду:
$ sudo -i -u postgres
После этого мы можем использовать командную строку PostgresSQL для управления нашими базами данных:
$ psql
Для выхода из командной строки PostresSQL используем команду:
postgres=# \q
С помощью этой команды мы вернемся к учетной записи postgres.
Чтобы начать использовать командную строку postgres без переключения учетной записи мы можем использовать следующую команду:
$ sudo -u postgres psql
Данный способ позволит использовать командную строку postgres без необходимости ввода промежуточной команды.
На текущий момент у нас существует только роль postgres. Для создания новой роли мы можем использовать команду createrole с флагом –interactive. При указание данного флага будет запрошено имя для создаваемой роли и права, которые необходимо ей присвоить. Если планируется вход по паролю для создаваемого пользователя, то мы можем также добавить флаг -P. Либо можно использовать команду \password уже после создания пользователя.
Если у вас уже выполнен вход под пользователем postgres, вы можете создать новую роль следующим образом:
postgres@server:~$ createuser --interactive -P
Если вы предпочитаете работать без переключения учетной записи вы можете использовать следующую команду для создания роли:
$ sudo -u postgres createuser --interactive -P
В результате выполнения одной из команд выше вам потребуется указать название роли и права которые ей необходимо предоставить.
Output Enter name of role to add: john Enter password for new role: Shall the new role be a superuser? (y/n) y
Посмотреть список всех ролей можно следующим образом:
# если вы вошли под пользователем postgres postgres@server:~$ psql postgres=# select rolname from pg_roles; # или так postgres=# \du
Этот запрос выведет список всех имеющихся ролей.
Если вам необходимо удалить только, что созданного пользователя можно использовать команду dropuser:
# если вы вошли под пользователем postgres postgres@server:~$ dropuser john # без переключения учетной записи $ sudo -u postgres dropuser john
Для получения более детальной информации по команде dropuser используем man dropuser.
Для создания новой базы данных можно использовать команду createdb. Чтобы указать пользователя в качестве владельца создаваемой базы мы можем добавить флаг -O :
# если вы вошли под пользователем postgres postgres@server:~$ createdb dbname -O john # без переключения учетной записи $ sudo -u postgres createdb dbname -O john
Чтобы посмотреть список все баз данных заходим в psql и выполняем команду \l:
# если вы вошли под пользователем postgres postgres@server:~$ psql postgres=# \l
Вывод команды покажет не только список существующих баз данных, но и их владельцев. Для переключения между базами данных можем использовать команду \connect dbname.
Поскольку мы не создавали системного пользователя john, то нам необходимо явно указать параметры подключения:
postgres@server:~$ psql -U john -d dbname -h 127.0.0.1 --password
Важно отметить, что при таком подключение при создании пользователя john необходимо обязательно задать ему пароль.
После входа мы можем посмотреть данные о текущем подключении с помощью команды \conninfo.
В данной статье описаны способы установки PostgreSQL, а также базовые аспекты работы с ней. Более детальную информацию по работе с данной СУБД можно узнать из официальной документации.