FAQ

EMS SQL Manager for PostgreSQL - это мощнейший графический инструмент для разработки и администрирования баз данных PostgreSQL. Он позволит легко и быстро создавать и редактировать объекты баз данных PostgreSQL, выполнять сценарии SQL, управлять пользователями и их привилегиями, визуально строить SQL запросы, просматривать статистику базы данных, извлекать и распечатывать метаданные, экспортировать/импортировать данные, просматривать и редактировать BLOB-поля, и многое другое.

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

Эти версии отличаются своей функциональностью. Поскольку SQL Manager Freeware – это бесплатное приложение, оно имеет ряд функциональных ограничений, например, максимальное количество зарегистрированных баз данных не может превышать 5, а также некоторые другие. Подробный список отличий вы можете найти на нашем сайте в Таблице характеристик программы.

Утилиты Data Export/Import for PostgreSQL включают в себя ряд дополнительных функций, не поддерживаемых SQL Manager for PostgreSQL, например:
  • экспорт/импорт данных из/в нескольких таблиц сразу;
  • экспорт/импорт данных из/в таблиц, выбранных из различных баз данных на одном хосте;
  • консольная утилита для экспорта/импорта с использованием файла конфигурации, содержащего все настройки.

 

В первую очередь, SQL Query for PostgreSQL работает быстрее, так как это более легкий продукт. Также SQL Query for PostgreSQL обладает рядом дополнительных функций для построения запросов, например:
  • "избранные/favorite" запросы для поиска и быстрого запуска наиболее часто исполняемых запросов;
  • хранение истории запросов, позволяющей совершить "откат" к любому отредактированному запросу;
  • различные улучшения интерфейса программы для более продуктивной и удобной работы.

DB Extract for PostgreSQL включает в себя некоторые дополнительные функции, которые недоступны в SQL Manager for PostgreSQL, например:

  • извлечение метаданных из различных баз данных, расположенных на одном сервере;
  • консольное приложение для упрощения процесса извлечения;
  • большая скорость работы.
Закладки DDL в Редакторе Таблиц и Редакторе UDF имеют параметры "только чтение/read only". Они отображают SQL-текст операций, которые Вы переносите из таблиц в закладки "Поля", "Индексы" или через UDF. Чтобы модифицировать этот текст необходимо скопировать его в буфер обмена, а затем изменять его, используя Редактор запросов.

 

SSH (Secure Shell Host) протокол используется для повышения компьютерной безопасности при работе с Unix-системами в Internet. SSH использует несколько алгоритмов шифрования разной степени надежности. Распространенность SSH связана еще и с тем, что многие Linux-подобные ОС (например, FreeBSD) включают в стандартную комплектацию SSH сервер. Для получения дополнительной информации вы можете посетить https://www.openssh.com. Опция SHH туннель в SQL Manager представляет собой средство организации безопасного доступа к PostgreSQL серверам при работе по небезопасным каналам связи. Также вы можете использовать SSH туннель для доступа к удаленным PostgreSQL серверам, если по каким-либо причинам порт 5432 закрыт для внешних подключений. Соединение через SSH туннель выглядит следующим образом. Сначала устанавливается соединение и производится процедура аутентификации между встроенным в SQL Manager SSH клиентом и удаленным SSH сервером, затем вся исходящая и входящая информация между программой и PostgreSQL сервером передается через SSH сервер с использованием коммуникационного порта (обычно 22), а SSH сервер транслирует информацию уже непосредственно PostgreSQL серверу. Чтобы зарегистрировать базу данных, соединение с которой должно выполняться с использованием SSH туннеля, вы должны задать следующие параметры при регистрации базы данных в SQL Manager for PostgreSQL.
На первом шаге:
- Хост - имя хоста, где расположен сервер PostgreSQL с точки зрения сервера SSH. Если SSH и PostgreSQL сервера установлены на одной машине, то он совпадает с хостом SSH, или он может быть 'localhost'.
- Порт - порт сервера PostgreSQL, его значение по умолчанию 5432.
- Пользователь - имя пользователя сервера PostgreSQL.
- Пароль - пароль пользователя PostgreSQL.
Имейте в виду, что имя хоста PostgreSQL должно быть задано относительно сервера SSH. Например, если PostgreSQL и SSH сервера установлены на одном компьютере, Вы должны указать localhost в качестве имени хоста вместо имени внешнего хоста или IP адреса. Далее выберите опцию Использовать туннелирование и SSH туннель.
На втором шаге:
- SSH хост - хост, где активирован сервер SSH.
- SSH порт - порт, где активирован сервер SSH.
- SSH пользователь - пользователь Linux машины. (Это пользователь Linux'a. Это не пользователь сервера PostgreSQL.)
- SSH пароль - пароль пользователя Linux'a.

Нужно ввести следующее:
На закладке "Туннелирование SSH":
- SSH хост - это хост, на котором активирован сервер SSH.
- SSH порт - порт, на котором запушен сервер SSH.
- SSH пользователь - это имя пользователя на сервере. (Пользователь сервера Linux. Это не имя пользователя сервера PostgreSQL).
- SSH пароль - пароль пользователя сервера Linux.
На закладке "Соединение":
- Хост - это хост, на котором расположен сервер PostgreSQL с точки зрения сервера SSH. Если сервер SSH расположен на том же компьютере, что и сервер PostgreSQL, то он приравнивается к Хосту SSH, или же к 'localhost'.
- Порт - это порт сервера PostgreSQL на Удаленном Хосте, по умолчанию его значение 5432.
- Пользователь - имя пользователя на сервере PostgreSQL.
- Пароль - это пароль пользователя на сервере PostgreSQL.

HTTP туннелирование - это способ, при котором соединение и передача данных между программой и PostgreSQL сервером происходит через протоколы HTTP/HTTPS, используя порт 80, через который работает обычный веб-браузер. Этот способ подходит для соединения с PostgreSQL, расположенном на удаленном сервере хостинг провайдера, когда прямое соединение невозможно из соображений безопасности. Соединение через HTTP туннель выглядит следующим образом: все исходящие запросы и команды с клиентских программ кодируются и передаются по протоколу HTTP/HTTPS, используя порт 80, специальному скрипту, который декодирует их, передает PostgreSQL серверу на обработку и возвращает обратно результат. Для использования этого способа на удаленном сервере должен быть установлен HTTP сервер (например, Apache) и PHP с подключенным расширением PostgreSQL. Как правило, это программное обеспечение предлагают все хостинг-провайдеры, предоставляющие услуги хостинга на Linux платформах. Кроме того, вы должны разместить наш emsproxy.php скрипт на вашем веб-сервере так, чтобы иметь к нему доступ извне (например, поместить его в каталог, где находятся ваши остальные PHP скрипты). Если ваш веб-сервер удовлетворяет данным требованиям и скрипт установлен правильно, то при открытии страницы https://<yourwebservername>/emsproxy.php в веб-браузере вы увидите страницу с сообщением 'The ‘emsproxy.php script is installed correctly'. Чтобы зарегистрировать базу данных, соединение к которой должно выполняться с использованием HTTP туннеля, вы должны задать следующие параметры в Мастере Регистрации Баз Данных в SQL Manager for PostgreSQL.
На первом шаге:
- Хост - это хост, где расположен PostgreSQL сервер с точки зрения HTTP сервера. Обычно HTTP и PostgreSQL сервер расположены на одной машине и являются 'localhost'.
- Порт - это порт PostgreSQL сервера на удаленном узле, по умолчанию он 5432.
- Пользователь - это имя пользователя на PostgreSQL сервере.
- Пароль - это пароль пользователя на PostgreSQL сервере.
Далее выберите опцию "Использовать туннелирование" и "SSH туннель".
На втором шаге:
- URL - это адрес, где находится скрипт emsproxy.php (например, https://mywebserver/emsproxy.php).
Вам нужно отключить параметр "Конвертировать имена создаваемых объектов к нижнему регистру" в диалоге "Настройки окружения" на закладке Инструменты/Редакторы объектов.

Чтобы получить источник данных в отчете, Вам нужно добавить диалоговую форму в отчет (меню 'Редактировать/Edit' 'Добавить форму диалога/Add dialog form' Конструктора Отчетов), затем поместить в нее базу данных и компоненты запроса из левой панели конструктора и установить связь и параметры запроса. После этого, запрос должен появиться в списках источников данных.

В целях повышения скорости работы и удобства Сетка Данных позволяет производить гибкую настройку многих параметров отображения данных. Ниже приведены наиболее важные из них (пункт меню "Настройки | Настройки окружения"). На закладке Сетка:
- Ограничения в редакторах. При включении опции "Выбирать все записи из таблицы" вы будете иметь возможность видеть все записи таблицы без дополнительных запросов к серверу, однако для больших таблиц или при низкоскоростном канале связи возможны значительные задержки при получении данных, также входящий трафик может быть большим. Режим рекомендуется при работе с базами данных, расположенными локально либо в частной сети. Режим "Выбирать только" ограничивает максимальное число записей, возвращаемых в результате запроса. Режим обусловлен тем, что человек не способен осмысленно просмотреть огромный объем информации за один раз. Для запроса и отображения следующей порции данных служит кнопка "Далее" в панели инструментов "Сетка Данных". Данный режим значительно ускоряет просмотр данных таблицы, предотвращает зависание и разрыв соединения при таймауте. Рекомендуется для работы с большими таблицами, при низкоскоростных каналах связи и когда объем трафика имеет значение. Данный режим включен по умолчанию. При данном режиме очень полезны опции "Использовать сортировку SQL" и "Использовать фильтр SQL".
На странице "Сетка | Настройки данных":
- Режим сетки по умолчанию. Данная опция определяет, будут ли все строки запроса загружаться в Сетку сразу ("Загружать все строки"), либо по мере необходимости ("Загружать видимые строки"), т.е. когда пользователь пролистывает данные в таблице. Первый режим увеличивает время открытия результата запроса, но уменьшает задержки при пролистывании. При втором режиме время открытия результата запроса минимально, но возникают задержки при навигации по сетке.
- Использовать сортировку SQL при просмотре данных. При включенной опции при задании пользователем сортировки данных на сервер отправляется новый запрос, результат которого заново отображается в сетке. Опция очень полезна при включенном режиме - "Выбирать только", но она увеличивает трафик. При отключенной опции сортировка выполняется на клиенте без участия сервера, но только в уже загруженных данных. Т.е. если указано "Выбирать только 1000 записей", то отсортируются только эти записи.
- Использовать фильтр SQL при просмотре данных. При включенной опции фильтрация данных будет производиться на сервере, куда отправляется новый запрос, результат которого заново отображается в сетке. Также очень полезная опция при включенном режиме - "Выбирать только", но она увеличивает трафик. При отключенной опции фильтрация выполняется на клиенте без участия сервера, но только в уже загруженных данных. Т.е. если указано "Выбирать только 1000 записей", то фильтр будет выбирать только из этих записей.
Для максимальной производительности при работе с большими таблицами мы рекомендуем установить следующие значения для опций:
- Выбирать только - Включено
- Загружать все строки - Включено
- Использовать сортировку SQL - Включено
- Использовать фильтр SQL - Включено

Вам необходимо включить опцию "Загрузить все записи". Щелкните правой кнопкой мыши на таблице и выберите опцию "Режим сетки/Загрузить все записи".

Диалог "Регистрационная информация базы данных" содержит закладку "Журналы", в которой Вы можете разрешить протоколирование всех изменений метаданных в базе данных, а также протоколирование выражений SQL, выполняемых в Редакторе SQL.

Поля типов TEXT, BYTEA, OID, а также VARCHAR больших размеров или без определенного размера по умолчанию не экспортируются. Необходимо вручную выбрать поля для экспорта в закладке "Поля".

Функция "Экспорт в SQL-скрипт" предназначена для экспорта табличных данных, которые будут вставлены в другую базу данных, отличную от сервера PostgreSQL. Функция "Извлечение базы данных" используется для копирования данных в таблицы сервера PostgreSQL.
Для смены директории выполните следующие действия:
- Щелкните правой клавишей мыши на необходимой базе данных в Проводнике БД и левой клавишей на "Регистрационная информация базы данных" во всплывающем меню (этот пункт Вы можете найти также в основном меню "База данных"). Откроется форма с параметрами базы данных.
- Щелкните левой клавишей на закладке "Каталоги".
- В секции "Каталог для экспорта данных" Вы можете выбрать директорию для экспорта файла.

Вам нужно увеличить значения задержек в закладке "Инструменты | Таймауты" диалога "Настройки окружения", или установить их равными нулю, то есть неограниченными.

Пожалуйста, убедитесь, что файл libpq.dll находится в директории SQL Manager for PostgreSQL. Переустановка приложения может решить эту проблему.

Настроить все отображаемые форматы (integer, float, date, time и date/time) можно в окне "Настрйоки окружения | Сетка | Форматы".

Да, это возможно. Главное - это то, что сам SQL Manager работает исключительно под управлением MS WINDOWS. Однако, под какой ОС работает PostgreSQL сервер, не имеет никакого значения.

Если из-за политики безопасности, принятой у вас в корпоративной сети или хостинг провайдером, вы не можете соединиться с вашим PostgreSQL сервером напрямую через TCP/IP (например, этому мешает файервол), то для этой цели вы можете использовать опцию SSH или HTTP туннель в SQL Manager.

1. Убедитесь, что в файле pg_hba.conf PostgreSQL сервера (находится в папке данных кластера базы данных) имеется запись для вашего клиентского компьютера.
2. Если вы соединяетесь с удаленным сервером, то на удаленном сервере должны быть разрешены TCP/IP соединения. Для этого необходимо отредактировать файл postgresql.conf на сервере: в список listen_addresses надо добавить имя или TCP/IP адрес клиентского компьютера. Либо можно указать в этом параметре звездочку - тогда будет разрешен коннект с любого хоста. То же самое можно сделать, запустив сервер с опцией -i, что эквивалентно listen_addresses = '*'.
3. Убедитесь, что вы вводите корректный логин/пароль.
4. Вы используете аутентификацию по паролю, но она не поддерживается в SQL Manager'e.
 

SQL Manager хранит все свои настройки в реестре Windows. Это означает, что единственный способ перенести их – получить доступ к реестру Windows. Сделать это можно, загрузив ОС со старого HDD (если это возможно) либо открыв файл реестра специальной программой-редактором. Если это удалось, то можно выгрузить ветку ‘HKEY_CURRENT_USER\Software\EMS\PostgreSQL Manager’ в *.REG файл, перенести этот файл на новую систему и добавить информацию в реестр с помощью двойного щелчка мыши по файлу.