PostgreSQL или Postgres — это универсальная объектно-реляционная система управления базами данных с открытым исходным кодом. PostgreSQL имеет множество расширенных функций, которые позволяют создавать сложные веб-приложения.
В этом руководстве мы покажем вам, как установить PostgreSQL в Ubuntu 18.04, и изучим основы базового администрирования баз данных.
Содержание
Подготовка
Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установите PostgreSQL в Ubuntu
На момент написания этой статьи последней версией PostgreSQL, доступной в официальных репозиториях Ubuntu, была PostgreSQL версии 10.4.
Чтобы установить PostgreSQL на свой сервер Ubuntu, выполните следующие действия:
-
Установка PostgreSQL
Обновите локальный индекс пакета и установите сервер PostgreSQL вместе с пакетом Contrib PostgreSQL, который предоставляет несколько дополнительных функций для базы данных PostgreSQL:
sudo apt updatesudo apt install postgresql postgresql-contrib -
Проверка установки PostgreSQL
После завершения установки служба PostgreSQL запустится автоматически.
Чтобы проверить установку, мы попытаемся подключиться к серверу базы данных PostgreSQL с помощью
psqlи распечатать версию сервера :sudo -u postgres psql -c "SELECT version();"
Роли и методы аутентификации PostgreSQL
Разрешения на доступ к базе данных в PostgreSQL обрабатываются с помощью концепции ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.
PostgreSQL поддерживает несколько методов аутентификации . Чаще всего используются:
- Доверие — с помощью этого метода роль может подключаться без пароля, если соблюдаются критерии, определенные в
pg_hba.conf. - Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как
scram-sha-256md5иpassword(открытый текст) - Ident — этот метод поддерживается только для соединений TCP / IP. Работает путем получения имени пользователя операционной системы клиента с необязательным отображением имени пользователя.
- Peer — То же, что и Ident, но поддерживается только для локальных подключений.
Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем pg_hba.conf . По умолчанию для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.
Пользователь postgres создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен корневому пользователю MySQL.
Чтобы войти на сервер PostgreSQL как пользователь postgres, сначала вам нужно переключиться на пользователя postgres, а затем вы можете получить доступ к приглашению PostgreSQL с помощью утилиты psql :
sudo su - postgrespsql
Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:
q
Вы также можете получить доступ к командной строке PostgreSQL, не переключая пользователей, с помощью команды sudo :
sudo -u postgres psql
Пользователь postgres обычно используется только с локального хоста, и не рекомендуется устанавливать пароль для этого пользователя.
Создание роли и базы данных PostgreSQL
Вы можете создавать новые роли из командной строки с помощью команды createuser . Только суперпользователи и роли с привилегией CREATEROLE могут создавать новые роли.
В следующем примере мы создадим новую роль с именем john в базе данных с именем johndb и предоставим привилегии для этой базы данных.
-
Создайте новую роль PostgreSQL
Следующая команда создаст новую роль с именем john:
sudo su - postgres -c "createuser john" -
Создайте новую базу данных PostgreSQL
Создайте новую базу данных с именем johndb с помощью команды
createdb:sudo su - postgres -c "createdb johndb" -
Предоставлять привилегии
Чтобы предоставить пользователю
johnправа доступа к базе данных, созданной на предыдущем шаге, подключитесь к оболочке PostgreSQL:sudo -u postgres psqlи запустите следующий запрос:
grant all privileges on database johndb to john ;
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 . Чтобы включить удаленный доступ к серверу PostgreSQL, откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в раздел CONNECTIONS AND AUTHENTICATION .
sudo vim /etc/postgresql/10/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
сохраните файл и перезапустите службу PostgreSQL с помощью:
sudo service postgresql restart
Проверьте изменения с помощью утилиты ss :
ss -nlt | grep 5432
LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
LISTEN 0 128 [::]:5432 [::]:*
Как видно из выходных данных выше, сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).
Последний шаг — настроить сервер на прием удаленных подключений путем редактирования файла pg_hba.conf .
Ниже приведены несколько примеров, показывающих различные варианты использования:
# TYPE DATABASE USER ADDRESS METHOD
# The user jane will be able to access all databases from all locations using a md5 password
host all jane 0.0.0.0/0 md5
# The user jane will be able to access only the janedb from all locations using a md5 password
host janedb jane 0.0.0.0/0 md5
# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host all jane 192.168.1.134 trust
Выводы
Вы узнали, как установить и настроить PostgreSQL на сервере Ubuntu 18.04.
Дополнительную информацию по этой теме см. В документации PostgreSQL 10.4 .
Если у вас есть вопросы, оставьте комментарий ниже.
