PostgreSQL или Postgres — это универсальная объектно-реляционная система управления базами данных с открытым исходным кодом. PostgreSQL имеет множество расширенных функций, которые позволяют создавать сложные веб-приложения.
В этом руководстве вы узнаете, как установить PostgreSQL на Ubuntu 18.04, и изучите основы базового администрирования баз данных.
Чтобы установить PostgreSQL на сервер Ubuntu, выполните следующие действия:
Установка PostgreSQL
Обновите локальный индекс пакета и установите сервер PostgreSQL вместе с пакетом PostgreSQL contrib, который предоставляет несколько дополнительных функций для базы данных PostgreSQL:
sudo apt update
sudo apt install postgresql postgresql-contrib
Проверка установки PostgreSQL
После завершения установки служба PostgreSQL запустится автоматически.
Чтобы проверить установку, мы попробуем подключиться к серверу базы данных PostgreSQL, используя psql
и распечатав версию сервера :
sudo -u postgres psql -c "SELECT version();"
Роли PostgreSQL и методы аутентификации
Разрешения на доступ к базе данных в PostgreSQL обрабатываются с помощью концепции ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.
PostgreSQL поддерживает несколько методов аутентификации. Наиболее часто используются:
- Trust — с помощью этого метода роль может подключаться без пароля, если соблюдены критерии, определенные в
pg_hba.conf
файле. - Password. Роль может подключиться, указав пароль. Пароли могут быть сохранены как
scram-sha-256
md5
иpassword
(открытый текст) - Ident — этот метод поддерживается только для соединений TCP/IP. Работает путем получения имени пользователя операционной системы клиента с необязательным сопоставлением имени пользователя.
- Peer — то же, что и Ident, но поддерживается только для локальных подключений.
Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем pg_hba.conf
. По умолчанию для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.
Пользователь postgres
создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем экземпляра PostgreSQL и эквивалентен привилегированному пользователю MySQL.
Чтобы войти на сервер PostgreSQL в качестве пользователя postgres, сначала вам нужно переключиться на пользователя postgres, а затем вы можете получить доступ к приглашению PostgreSQL с помощью psql
утилиты:
sudo su - postgres
psql
Отсюда вы можете взаимодействовать с вашим экземпляром 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
/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
файл.
Заключение
Вы узнали, как установить и настроить PostgreSQL на сервере Ubuntu 18.04.
0 комментариев