Использование psql для подключения к ADB

Для подключения к ADB можно использовать стандартное клиентское приложение PostgreSQL — psql. Это интерактивный терминал, который позволяет выполнять SQL-запросы из командной строки и просматривать их результаты. Для взаимодействия с ADB необходимо подключиться к хосту мастера. Сегменты не предназначены для клиентских подключений.

ВАЖНО

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

  • System user name

  • Name of default database

Если эти параметры не менялись, системный пользователь на хостах кластера и соответствующая роль базы данных по умолчанию имеют имя gpadmin, а название базы данных по умолчанию — adb.

Локальное подключение

При использовании настроек по умолчанию:

  1. Подключитесь к хосту мастера ADB (например, по SSH) и войдите в систему под учетной записью gpadmin, которая создается по умолчанию:

    $ sudo su - gpadmin
  2. Подключитесь к базе данных adb:

    $ psql adb

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

psql (9.4.26)
Type "help" for help.

adb=#

Символ # означает, что вы подключены как суперпользователь. Введите необходимую SQL-команду и нажмите Enter, чтобы выполнить ее. Например, можно создать пользователя, учетную запись которого будем использовать в примере с удаленным подключением:

CREATE USER alice WITH PASSWORD 'secure_password';

Удаленное подключение

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

Разрешение удаленного подключения

Добавьте адрес хоста, с которого вы хотите подключиться, в файл pg_hba.conf. Для этого можно использовать веб-интерфейс ADCM:

  1. Откройте конфигурационные параметры сервиса ADB.

  2. В поле Custom pg_hba section добавьте строку в следующем формате:

    host    <database_name>  <user_name>       <client_address>      <auth_method>

    Например:

    host    adb    alice    192.0.2.2/32    md5
    ПРИМЕЧАНИЕ

    При использовании метода аутентификации md5 потребуется ввод пароля пользователя. Описание других способов аутентификации приводится в документации Greengage DB. Пример использования метода GSSAPI приводится в статье Аутентификация с использованием MIT Kerberos KDC в ADB.

  3. Нажмите Save, чтобы сохранить конфигурацию. Затем нажмите Action → Reconfigure, чтобы применить изменения.

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

Опционально можно проверить добавленный адрес на стороне мастера: откройте файл $MASTER_DATA_DIRECTORY/pg_hba.conf или выполните запрос к системному представлению pg_hba_file_rules, которое предоставляет информацию из этого файла. Например:

SELECT * FROM pg_hba_file_rules WHERE address='192.0.2.2';

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

 line_number | type | database | user_name |  address   |     netmask     | auth_method | options | error
-------------+------+----------+-----------+------------+-----------------+-------------+---------+-------
          23 | host | {adb}    | {alice}   | 192.0.2.2 | 255.255.255.255 | md5         |         |
(1 row)

Удаленное подключение

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

    $ psql -h <master_address> -U <user_name> -d <database_name>

    Например:

    $ psql -h 192.0.2.123 -U alice -d adb

    Будет предложено ввести пароль пользователя:

    Password for user alice:
  2. Введите пароль.

После установки соединения отображается приглашение с указанием версии psql на стороне клиента и версии PostgreSQL сервера, а также имени базы данных:

psql (9.4.26 (Homebrew), server 9.4.26)
Type "help" for help.

adb=>

Символ => означает, что вы подключены к базе данных как обычный пользователь.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней