Ubuntu открыть доступ к postgresql

Обновлено: 04.07.2024

Установка PostgreSQL и создание новой роли пользователя

В шагах этой процедуры используется PostgreSQL x.x , где x.x - поддерживаемая версия.

2. Загрузите и установите соответствующую версию PostgreSQL.

◦ Можно добавить репозиторий PostgreSQL, что позволит установить это приложение непосредственно из диспетчера пакетов.

Чтобы получить наименование версий Ubuntu, используйте следующую команду:

3. Установите инструмент администрирования PostgreSQL, PgAdmin:

$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"

5. Введите пароль для пользователя PostgreSQL. Этот пароль будет использоваться в дальнейших шагах.

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

◦ Установите флажки рядом с полями listen addresses и port . Обычно достаточно настроек по умолчанию: localhost и 5432 .

◦ Дважды щелкните в базе данных строку all с адресом 127.0.0.1/32

9. Чтобы добавить соединение с сервером, щелкните значок подключения в верхнем левом углу и заполните следующие поля:

Name: PostgreSQL x.x
Host: localhost
Port: 5432
Service: <blank>
Maintenance DB: postgres
Username: postgres
Password: <unique PostgreSQL password as set previously>
Store password: Checked
Group: Servers

Если не используется PgAdmin, можно использовать следующую команду:

sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"

b. Щелкните правой кнопкой мыши PostgreSQLx.x (<IP-адрес или наименование хост-компьютера базы данных>:<номер порта PostgreSQL>) . Пример: PostgreSQLx.x (localhost:5432) .

c. Выберите NewObject > NewLogin Role . На вкладке Properties введите наименование в поле Role name .

d. На вкладке Definition введите в поле Password уникальный пароль (появится подсказка, что нужно ввести его дважды). Необходимо будет повторно ввести этот пароль на последующих шагах.

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

Конфигурирование базы данных PostgreSQL, расположенной на отдельном сервере, а не на сервере ThingWorx

Этот раздел является необязательным для среды разработки, но должен быть реализован во всех производственных средах.

По умолчанию сервер PostgreSQL устанавливается в заблокированном состоянии. Этот сервер прослушивает подключения только на локальном компьютере. Чтобы приложение ThingWorx стало взаимодействовать с сервером PostgreSQL, необходимо внести в конфигурацию некоторые изменения, чтобы сервер PostgreSQL "научился" прослушивать подключения со стороны других пользователей (пользователь ThingWorx по умолчанию: twadmin) и/или других компьютеров (приложения ThingWorx, установленного на отдельном сервере).

Для выполнения этих шагов необходимо знать, где находится каталог данных PostgreSQL. Для ОС Linux: расположение папки данных или даже файлов конфигурации может изменяться в зависимости от способа распределения и способа установки (установка загружаемых файлов или установка с помощью диспетчера пакетов). В инструкциях для ссылки на это расположение используется путь <PGDATA> .

Для Ubuntu: при установке через apt-get файлы конфигурации расположены в /etc/postgresql/x.x/main/

Измените файл pg_hba.conf и добавьте в зависимости от нужной конфигурации следующие строки:

Если нужно разрешить соединение со всех адресов IPv4:

Если нужно разрешить подключение только с определенного адреса IPv4 (замените < ipAddress > IP-адресом компьютера, осуществляющего подключение):

Если нужно разрешить подключение со всех адресов IPv6:

Если нужно разрешить подключение только с определенного адреса IPv6 (замените <ipv6Address> соответствующим адресом):

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

После любого изменения этого файла требуется перезапуск сервиса базы данных.

Активация в PostgreSQL прослушивания всех подключений

На установках PostgreSQL в ОС Linux существует дополнительный шаг конфигурации, необходимый, чтобы сконфигурировать сервер PostgreSQL для прослушивания подключений.

1. В файле postgresql.conf раскомментируйте и обновите строку listen_addresses :

Конфигурирование и выполнение сценария базы данных PostgreSQL

Чтобы настроить базу данных и область таблицы PostgreSQL, необходимо сконфигурировать и выполнить сценарий thingworxPostgresDBSetup .

1. Создайте папку ThingworxPostgresqlStorage на диске, на котором находится папка ThingworxStorage (по умолчанию - в корневом каталоге). Обратите внимание на следующее.

◦ При создании папки с помощью команды -d<databasename> не нужно использовать пользователя PostgreSQL.

◦ Необходимо указать для опции -l существующий путь. Например, -l D:\ThingworxPostgresqlStorage . В этом сценарии ваша папка не создается.

◦ Для этой папки должен существовать владелец и должны быть заданы соответствующие права доступа. Владельцем этой папки должен быть тот же пользователь, который запускает сервис PostgreSQL и которому назначены права для полного управления; обычно это пользователь NETWORK_SERVICE , но в вашей среде он может быть другим.


$ sudo mkdir /ThingworxPostgresqlStorage
$ sudo chown postgres:postgres /ThingworxPostgresqlStorage
$ sudo chmod 755 /ThingworxPostgresqlStorage

3. Если необходимо, сконфигурируйте сценарий. Используйте опции из приведенной ниже таблицы.

В этом примере используется загрузка версии 8.x.x с сайта PTC. Если необходимо, замените в имени файла версию той, которую вы используете.

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

Рекомендую к прочтению:

В этом руководстве вы узнаете, как установить PostgreSQL в Ubuntu 20.04.

Что требуется для установки PostgreSQL?

Перед установкой Postgres в Ubuntu вам необходимо выполнить некоторые основные требования.

  1. Установленная Ubuntu 20.04
  2. Привилегии Sudo для установки пакетов.
  3. Подключение к интернету.

Установка PostgreSQL в Ubuntu

PostgreSQL доступен в репозиториях Ubuntu по умолчанию. Просто используйте команду apt для установки PostgreSQL. Наиболее распространенными установленными пакетами являются PostgreSQL server, client, pgadmin, а также библиотеки.

Для установки конкретной версии вы можете использовать PostgreSQL Apt repository.

Чтобы установка PostgreSQL Ubuntu прошла гладко, выполните следующие действия.

Во-первых, убедитесь, что ваша система находится в актуальном состоянии, выполнив следующую команду.

$ sudo apt install postgresql postgresql-contrib

После завершения установки PostgreSQL запустите службу PostgreSQL. Это можно сделать командой которая написана ниже.

$ sudo systemctl start postgresql.service

Также включите автоматический запуск службы PostgreSQL при загрузке системы. Делается это командой.

$ sudo systemctl enable postgresql.service

Запуск и включение службы postgres

Запуск и включение службы postgres

После установки вы можете проверить состояние PostgreSQL, выполнив следующую команду.

$ sudo systemctl status postgresql.service

Статус службы Postgres

Статус службы Postgres

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

Теперь введите команду psql,

Выполнение команд в оболочке Postgres

Выполнение команд в оболочке Postgres

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

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

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

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

Для создания новой базы данных требуется программа PostgreSQL database shell (psql). Войдите в оболочку psql и введите следующую команду, чтобы создать пользователя и установить пароль. Здесь я собираюсь создать имя пользователя jacky с паролем mystrongpassword. Вы можете создать свой собственный.

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

Предоставьте доступ к БД которую только что создали.. Здесь я собираюсь предоставить все права на базу данных gallery, чтобы пользователь jacky мог в ней работать.

Чтобы выйти из оболочки PostgreSQL требуется ввести команду q и нажать enter.

Создание пользователя и базы данных

Создание пользователя и базы данных

Включение удаленного доступа к PostgreSQL

По умолчанию PostgreSQL слушает на интерфейсе 127.0.0.1. Если вы хотите получить доступ к базе данных из другого места. Тогда вам требуется настроить PostgreSQL для прослушки различных сетевых интерфейсов. Чтобы настроить PostgreSQL для различных интерфейсов, откройте конфигурационный файл PostgreSQL с помощью nano или другим текстовым редактором. Я буду использовать редактор Vim.

$ sudo vi /etc/postgresql/12/main/postgresql.conf

Включение удаленного подключения в postgres

Включение удаленного подключения в postgres

Сохраните свою конфигурацию и перезапустите сервер PostgreSQL, чтобы изменения отразились в БД.

$ sudo systemctl restart postgresql.service

Теперь можно проверить прослушивает ли PostgreSQL другой интерфейс. Для этого выполните следующую команду.

Состояние прослушивания порта Postgres

Состояние прослушивания порта Postgres

Также проверьте правило брандмауэра UFW, делается это командой.

Конфигурация Postgres ufw

Конфигурация Postgres ufw

Заключение

В этом руководстве вы узнали, как установить сервер PostgreSQL на Ubuntu 20.04. Кроме того, вы также узнали, как привязать PostgreSQL к различным сетевым интерфейсам, чтобы принимать соединения от удаленного клиента.

Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:

Для установки PostgreSQL сервера:

Проверим, можем ли мы подключиться к базе данных PostgreSQL:

Вывод команды должен быть примерно таким:

PostgreSQL Подключение, Пользователи (Роли) и Базы Данных

Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:

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

Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.

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

PostgreSQL создание новой роли и базы данных

Создать новую роль c именем admin (указывайте нужное имя):

Создание новой базы данных:

Дать права роли на базу данных:

Включить удаленный PostgreSQL доступ для пользователей

Нам нужно отредактировать файл /etc/postgresql/<VERSION>/main/pg_hba.conf, задав опцию md5 вместо peer.

<VERSION> может быть 10, 11, 12 и т.д.

После этого сделать restart PostgreSQL:

Полезные команды PostgreSQL

Выйти из клиента PostgreSQL:

\q

Показать список баз данных PostgreSQL:

\l

Показать список таблиц:

\dt

Показать список пользователей (ролей):

\du

Показать структуру таблицы:

Переименовать базу данных:

Удалить базу данных:

Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):

\connect db_name или более короткий alias: \c db_name

Удалить роль (пользователя):

Роль не будет удалена, если у нее есть привелегии - возникнет ошибка ERROR: role cannot be dropped because some objects depend on it .

Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:

Дать права пользователю/роли на логин ( role is not permitted to log in ):

Выбор shema psql в консоли:

Посмотреть список всех схем:

Подключиться к конкретной схеме:

Sequences

Получить имена всех созданных sequences:

Получить последнее значение sequence, которые будет присвоено новой вставляемой в таблицу записи:

Все работы на нашем сервере мы будем производить под учётной записью, имеющей привилегии sudo . Также, на нашем сервере установлен и настроен брандмауэр UFW .

Установка PostgreSQL

Поскольку PostgreSQL устанавливается из стандартных репозиториев Ubuntu, для запуска установки подключитесь к вашему серверу под учётной записью, входящей в группу sudo , и наберите в командной строке:

После завершения установки вы можете убедиться, что служба PostgreSQL активна. Для чего в командной строке наберите:

Проверка активности PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Также, посмотрите, включена ли служба:

Проверка запуска PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

И наконец, вы можете увидеть статус службы PostgreSQL:

Проверка статуса PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

После чего, убедитесь, что PostgreSQL-сервер готов принимать подключения от клиентов:

Проверка готовности PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

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

Чтобы создать новую базу данных, вы должны получить доступ к программной оболочке PostgreSQL. Во-первых, подключитесь к системе с помощью учётной записи postgres :

Подключение пользователем postgres

Подключившись, выполните команду psql :

Запуск команды psql

Добавление пользователя

Следующая команда создаст базу данных, которую мы назовём, например, bobdb :

Создание базы данных

Теперь, назначьте своему пользователю все права сразу на вашу базу данных. В нашем примере это будет выглядеть так:

Назначение пользователю прав

Чтобы покинуть оболочку, наберите:

Выход из оболочки

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

Отключение пользователя postgres

Настройка клиентской аутентификации PostgreSQL

СУБД PostgreSQL использует клиентскую аутентификацию для того, чтобы решать, какая учётная запись к какой базе данных и с какого хоста может подключаться. Это определяется настройками конфигурационного файла клиентской аутентификации. В Ubuntu таким файлом является файл pg_hba.conf . Он располагается в директории /etc/postgresql/12/main/ .

Откройте этот файл для редактирования, например, с помощью текстового редактора nano :

PostgreSQL использует много типов методов клиентской аутентификации, таких как peer, ident, password или md5. Тип md5 является наиболее безопасным и рекомендуемым по причине того, что он требует от клиента использовать для аутентификации пароли с двойным md5-хешированием. Поэтому нам остаётся лишь убедиться, что в строках ниже указан именно метод md5:

Если вы произвели в конфигурационном файле какие-либо изменения, не забудьте сохранить их при закрытии файла. В nano для этого необходимо нажать Ctrl X , затем Y и Enter . После чего, перезапустите службу:

Установка pgAdmin4

Пакет pgAdmin4 не доступен для установки из официальных репозиториев Ubuntu. Поэтому мы будем устанавливать его из репозитория pgAdmin4 APT . Для этого сначала необходимо установить данный репозиторий.

Добавьте публичный ключ для репозитория и создайте его конфигурационный файл. Для чего наберите следующие команды:

Затем запустите установку pgAdmin4:

Работа скрипта setup-web.sh

В процессе установки скрипт перезапустит службу Apache2 для того, чтобы вступили в силу произведённые изменения.

После того, как скрипт закончит свою работу, вам нужно будет добавить разрешение для Apache2 на доступ через брандмауэр. Чтобы сделать это, наберите:

Запуск брандмауэра UFW

Убедитесь, что служба Apache2 включена в список разрешённых на брандмауэре вашего сервера:

Проверка статуса брандмауэра UFW

Настройка доступа через веб-интерфейс

Чтобы получить доступ к веб-интерфейсу pgAdmin4, откройте браузер и введите адрес в строке навигации:

После этого вы увидите страницу для подключения к pgAdmin4. Для входа используйте адрес электронной почты и пароль, который вы вводили при работе скрипта setup-web.sh :

В случае успешной авторизации, вы попадёте на панель веб-приложения pgAdmin4. Там, вы можете подключиться к своему серверу PostgreSQL, нажав на ярлык Add New Server:

Стартовая страница pgAdmin4

Далее, заполните данные нового сервера на закладке General и перейдите на закладку Connection :

Добавление сервера

Добавление сервера - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Если введённые учётные данные корректны, вы попадёте в панель управления pgAdmin4. Здесь, вы даже можете найти ту базу данных, которую вы создавали при настройке PostgreSQL. В нашем примере это была база данных bobdb .

Панель управления pgAdmin4 - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04

Таким образом, мы установили СУБД PostgreSQL, создали там учётную запись, базу данных и добавили созданному пользователю набор полномочий по отношению к созданной базе. После чего, мы подключились к СУБД PostgreSQL при помощи веб-интерфейса pgAdmin4. Основой всего нам послужил виртуальный выделенный сервер (VPS), работающий под управлением операционной системы Ubuntu 20.04.

Читайте также: