Android

Как установить PostgreSQL на Debian 9

Postgres and Debian

Postgres and Debian

Оглавление:

Anonim

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

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

Предпосылки

Прежде чем приступить к этой обучающей программе, убедитесь, что пользователь вы вошли в систему как имеет привилегии SUDO.

Установка PostgreSQL

На момент написания этой статьи последней версией PostgreSQL, доступной в репозиториях Debian, была PostgreSQL версии 9.6.

Для установки PostgreSQL на сервере Debian выполните следующие действия:

  1. Начните с обновления локального индекса пакетов:

    sudo apt update

    Установите сервер PostgreSQL и пакет поддержки PostgreSQL, который предоставляет дополнительные функции для базы данных PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    После завершения установки служба PostgreSQL запустится автоматически. Для проверки установки мы подключимся к серверу базы данных PostgreSQL с помощью утилиты psql и распечатаем версию сервера:

    sudo -u postgres psql -c "SELECT version();"

    Вывод будет выглядеть так:

    version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

Psql представляет собой интерактивный терминал программа, которая позволяет взаимодействовать с сервером PostgreSQL.

PostgreSQL Роли и методы аутентификации

PostgreSQL управляет правами доступа к базе данных с использованием концепции ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.

PostgreSQL поддерживает несколько методов аутентификации. Наиболее часто используемые методы являются:

  • Доверие - С помощью этого метода, роль может подключиться без пароля, если критерии, определенные в pg_hba.conf являются met.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

Вы можете использовать sudo команду для доступа к PostgreSQL строки без переключения пользователей:

sudo -u postgres psql

postgres пользователь, как правило, используется только с локального хоста и не рекомендуется установить пароль для этого пользователя.

Создание роли и базы данных PostgreSQL

Вы можете создавать новые роли из командной строки, используя команду createuser . Только суперпользователи и роли с привилегией CREATEROLE могут создавать новые роли.

В следующем примере мы создадим новую роль с именем john базу данных с именем johndb и предоставим привилегии для базы данных.

  1. Создание новой PostgreSQL роли

    Следующая команда создаст новую роль с именем джон:

    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/9.6/main/postgresql.conf /etc/postgresql/9.6/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 .

Ниже приведены примеры, показывающие различные варианты использования:

/etc/postgresql/9.6/main/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 на сервере Debian 9. Для получения дополнительной информации по этой теме обратитесь к документации PostgreSQL.

базы данных PostgreSQL Debian