Поиск по сайту:

Как установить базу данных PostgreSQL в Debian 10


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

Важно отметить, что PostgreSQL позволяет вам определять ваши собственные типы данных, добавлять собственные функции и даже писать код с разных языков программирования, таких как C/C++, Java и т. д., без перекомпиляции базы данных.

PostgreSQL используется известными технологическими компаниями, такими как Apple, Fujitsu, Red Hat, Cisco, Juniper Network и т. д.

В этой статье мы покажем вам, как установить, защитить и настроить сервер баз данных PostgreSQL в Debian 10.

Требование:

  1. Установите минимальный сервер Debian 10 (Buster)

Установка PostgreSQL-сервера в Debian 10

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

apt install postgresql-11 postgresql-client-11

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

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

pg_isready 

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

systemctl status postgresql

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

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql 		#this reloads the service configuration

Защита и настройка базы данных PostgreSQL

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

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

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

passwd postgres

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

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Затем выйдите из учетной записи 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.

postgres=# CREATE DATABASE test_db;

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

postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’;     #assumes login function by default

Чтобы подключиться к test_db от имени пользователя test_user, выполните следующую команду.

 
psql -d  test_db  -U test_user

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

Заключение

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