PostgreSQL, часто известный просто как Postgres, представляет собой универсальную объектно-реляционную систему управления базами данных с открытым исходным кодом. Он имеет множество мощных функций, таких как онлайн-резервное копирование, восстановление на определенный момент времени, вложенные транзакции, запросы SQL и JSON, управление многовариантным параллелизмом (MVCC), асинхронная репликация и многое другое.
Это руководство проведет вас по этапам установки сервера базы данных PostgreSQL в Debian 10. Мы также изучим основы базового администрирования баз данных.
Содержание
Установка PostgreSQL
На момент написания этой статьи последней версией PostgreSQL, доступной в репозиториях Debian по умолчанию, была PostgreSQL версии 11.5.
Чтобы установить PostgreSQL на ваш сервер Debian, выполните следующие действия от имени пользователя root или пользователя с привилегиями sudo :
-
Начните с обновления индекса пакета APT:
sudo apt update -
Установите сервер PostgreSQL и пакет contrib, который предоставляет дополнительные функции для базы данных PostgreSQL:
sudo apt install postgresql postgresql-contrib -
После завершения установки запустится служба PostgreSQL. Чтобы проверить установку, используйте инструмент
psqlдля печати версии сервера :sudo -u postgres psql -c "SELECT version();"Результат должен выглядеть примерно так:
PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
psql — это интерактивная терминальная программа, которая позволяет вам взаимодействовать с сервером PostgreSQL.Роли и методы аутентификации PostgreSQL
PostgreSQL обрабатывает разрешения на доступ к базе данных, используя концепцию ролей. В зависимости от того, как вы настроили роль, она может представлять пользователя базы данных или группу пользователей базы данных.
PostgreSQL поддерживает несколько методов аутентификации . Наиболее часто используемые методы:
- Доверие — роль может подключаться без пароля, если соблюдаются критерии, определенные в
pg_hba.conf. - Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как
scram-sha-256md5иpassword(открытый текст) - Идентификатор — поддерживается только для подключений TCP / IP. Он работает путем получения имени пользователя операционной системы клиента с дополнительным отображением имени пользователя.
- Peer — То же, что и Ident, но поддерживается только для локальных подключений.
Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем pg_hba.conf . Для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.
Пользователь «postgres» создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root MySQL.
Чтобы войти на сервер PostgreSQL как «postgres», переключитесь на пользовательский postgres и получите доступ к приглашению PostgreSQL с помощью утилиты psql :
sudo su - postgrespsql
Отсюда вы можете взаимодействовать с сервером PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:
q
Вы можете использовать команду sudo для доступа к приглашению PostgreSQL без переключения пользователей:
sudo -u postgres psql
Пользователь postgres обычно используется только с локального хоста.
Создание роли и базы данных PostgreSQL
Команда createuser позволяет создавать новые роли из командной строки. Только суперпользователи и роли с привилегией CREATEROLE могут создавать новые роли.
В следующем примере мы создадим новую роль с именем kylo , базу данных с именем kylodb и предоставим этой роли права kylodb к базе данных.
-
Сначала создайте роль, введя следующую команду:
sudo su - postgres -c "createuser kylo" -
Затем создайте базу данных с помощью команды
createdb:sudo su - postgres -c "createdb kylodb" -
Чтобы предоставить пользователю права доступа к базе данных, подключитесь к оболочке PostgreSQL:
sudo -u postgres psqlВыполните следующий запрос:
grant all privileges on database kylodb to kylo ;
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 .
Если вы хотите подключиться к серверу PostgreSQL из удаленных мест, вам необходимо настроить сервер на прослушивание общедоступного интерфейса и отредактировать конфигурацию, чтобы принимать удаленные подключения.
Откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в раздел CONNECTIONS AND AUTHENTICATION . Это дает серверу команду прослушивать все сетевые интерфейсы.
sudo nano /etc/postgresql/11/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 an 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 an 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 в Debian 10. Для получения дополнительной информации по этой теме обратитесь к документации PostgreSQL .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.