Главная >> Инструкции >> Установка PostgreSQL в Debian 10

Установка PostgreSQL в Debian 10

PostgreSQL (иногда именуемая Postgres) - это самая продвинутая, универсальная, объектно-ориентированная система баз данных с открытым исходным кодом с проверенной архитектурой, которая работает на всех основных операционных системах. Это высокопроизводительная, стабильная, масштабируемая и расширяемая система баз данных, которая обеспечивает хорошую целостность данных и поддерживает мощные дополнения.

Важно то, что PostgreSQL позволяет вам определять свои собственные типы данных, добавлять пользовательские функции, даже писать код на разных языках программирования, таких как C/C++, Java, и т. д., без перекомпиляции вашей базы данных. PostgreSQL используется известными техническими компаниями, такими как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т. д. В этой статье мы покажем вам, как установить, защитить и настроить сервер баз данных PostgreSQL 11 Debian 10.


Содержание статьи

Установка PostgreSQL на Debian 10

Чтобы установить PostgreSQL Debian 10, используйте менеджер пакетов APT, который установит и сервер и клиент PostgreSQL 11.

apt install postgresql-11 postgresql-client-11

В Debian, база данных postgres инициализируется сразу после завершения установки пакета, как показано на следующем снимке.

Чтобы проверить, действительно ли база данных Postgres инициализирована, вы можете использовать утилиту pg_isready, которая проверяет статус соединения сервера PostgreSQL 11 следующим образом:

pg_isready

Кроме того, в systemd служба Postgres также запускается автоматически и включается при загрузке системы. Чтобы убедиться, что служба работает нормально, выполните следующую команду.

systemctl status postgresql

Далее следуют другие полезные команды systemctl для управления службой Postgres в systemd.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql

Чтобы перечитать конфигурацию после перезагрузки выполните:

systemctl reload postgresql

Настройка PostgreSQL

По умолчанию Postgres использует концепцию ролей для управления разрешениями доступа к базе данных, а роли базы данных концептуально полностью отделены от пользователей операционной системы. Роль может быть пользователем или группой, а роль с правом входа в сиcтему называется пользователем.

Только что инициализированная система всегда содержит одну предопределенную роль, называемую postgres, и имеет то же имя, что и учетная запись пользователя операционной системы, называемая postgres, которая используется для доступа к psql (оболочка Postgres) и другим программам баз данных.

Учетная запись пользователя системы Postgres не защищена паролем, для ее защиты вы можете создать пароль с помощью утилиты passwd.

passwd postgres

Кроме того, роль Postgres (или, если угодно, суперпользователь базы данных) по умолчанию не защищена. Вам также необходимо защитить ее паролем. Теперь переключитесь на учетную запись пользователя системы postgres и роль postgres (не забудьте установить надежный и безопасный пароль), как показано ниже.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'новый_пароль';"

Далее выйдите из учетной записи postgres, чтобы продолжить настройку. Основной файл конфигурации Postgres находится по пути /etc/postgresql/11/main/postgresql.conf. В дополнение к этому файлу Postgres использует два других файла конфигурации, которые управляют аутентификацией клиента.

Аутентификация клиента контролируется файлом конфигурации /etc/postgresql/11/main/pg_hba.conf. Postgres предоставляет множество различных методов аутентификации клиента, включая аутентификацию на основе пароля. Клиентские соединения аутентифицируются на основе адреса хоста клиента, базы данных и пользователя.

Если вы решите использовать аутентификацию на основе пароля, вы можете воспользоваться одним из этих методов: md5 или пароль, работающий аналогичным образом, за исключением способа передачи пароля по соединению, а именно, хэширования MD5 и открытого текста соответственно.

Использование аутентификации по паролю md5 предотвращает перехват паролей хакерами и позволяет избежать хранения паролей на сервере в виде простого текста. Парольный метод можно использовать только в том случае, если соединение защищено шифрованием SSL.

В этом руководстве мы покажем, как настроить аутентификацию по паролю md5 для аутентификации клиента.

vim /etc/postgresql/11/main/pg_hba.conf

Найдите следующую строку и измените метод аутентификации на md5, как показано на скриншоте.

local all all md5

Сохраните изменения в файле и выйдите из него. Затем примените последние изменения, перезапустив службу Postgres следующим образом.

systemctl restart postgresql

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

su - postgres

psql

Чтобы создать базу данных с именем «test_db», выполните следующую SQL команду:

CREATE DATABASE test_db;

Затем создайте пользователя базы данных (роль с правом входа), который будет управлять новой базой данных:

CREATE USER test_user PASSWORD ‘новый_пароль’;

На этом настройка postgresql Debian 10 практически завершена. Чтобы подключиться к test_db от имени пользователя test_user, выполните:

psql -d test_db -U test_user

Для получения дополнительной информации см. Документацию PostgreSQL 11.

Выводы

На этом, пока что, все! В этой статье мы показали, как делается установка Postgresql Debian 10, а также как защитить и настроить полученный сервер баз данных. Есть ли у вас какие-либо вопросы или мысли, которыми хочется поделиться? Используйте форму комментариев ниже.

7 комментариев к “Установка PostgreSQL в Debian 10”

  1. Скажите, пожалуйста, раньше postgresql нельзя было использовать для работы с 1с без доработки или патча. Использовали сборку от postgrespro или 1с. С выходом 11 версии postgresql, стало возможным использовать её "как есть" для 1с?

    Ответить
  2. Прошу поправить "pssql" и вопрос про md5. Если подключаться удаленно то в пароль надо вводить именно хеш или база сама высчитает хеш из обычного стрингового пароля?

    Ответить

Оставьте комментарий