В наличии была база данных MSSQL (с которой забираем данные), а также PostgreSQL Pro Enterprise 10.3, развернутая на CentOS 7 (на которую импортируем). Ну и полное отсутствие интернета. Скачиваем freetds библиотеку (freetds-0.91.tar.gz) из интернета ручками (http://mirrors.ibiblio.org/freetds/stable/) По WinSCP перемещаем на postgres сервер в любую доступную папку (У меня /home/myuser/)   Распаковываем архив  tar -zxvf freetds-0.91.tar.gz Далее проверяем наличие следующих библиотек: gcc-c++, ncurses-devel (Можете кусаться, но лично у меня без этих библиотек дальнейшие шаги не получались) Переходим в папку библиотеки, она появится после распаковки архива и будет называться идентично   cd freetds-0.91/ Выполняем команду конфигурации. Запоминаем директорию, указанную в —prefix (у меня /usr/local/freetds)   ./configure --prefix=/usr/local/freetds --enable-msdblib Далее выполняем команды make && make install Проверяем, чтобы в конце вывода команды не было ошибок. Если есть, гуглим, исправляем сразу. Если будут ошибки на данном шаге, дальше не установится. На этом шаге мы установили FreeTDS (в папку /usr/local/freetds). Продолжаем настраивать. Открываем конфиг-файл командой, либо ручками в WinSCP vim /etc/ld.so.conf Дописываем в файл через один пробел путь до lib директории уже установленной библиотеки  (/usr/local/freetds/lib/) и сохраняем. Далее выполняем команду, чтобы применить эти изменения ldconfig Добавим для удобства в переменную PATH путь до bin папки библиотеки   PATH=/usr/local/freetds/bin:$PATH Проверяем работоспособность tsql сервиса  tsql -C Скрипт выведет список настроек Указываем конфигурацию MS сервера (к которому будем подключаться) в freetds.conf файле (его расположение выводится в команде выше)  в следующем формате  host = serverhost port = serverport tds version = 7.0 Прописываем хост и порт (по дефолту 1433), запоминаем имя в квадратных скобках, далее мы будем к нему обращаться.   Делаем тест подключение   tsql -S myserver -U username -P password В результате успешного подключения откроется консоль  Делаем тест запрос. Например, запросим список существующих таблиц для определенной базы  SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName' Для выполнения через консоль, в строке 1> необходимо указать запрос, а в строке 2> написать слово go. А чтобы выйти из консоли MS сервера, пишем quit и нажимаем Enter . Заходим на гит ресурс https://github.com/tds-fdw/tds_fdw.git Скачиваем модуль как zip-архив руками По WinSCP перемещаем на pg сервер в любую доступную папку (У меня /home/myuser/) Распаковываем архив командой unzip tds_fdw-master.zip Редактируем Makefile файл в папке с распакованным модулем (у меня /home/myuser/tds_fdw-master/Makefile)  Редактируем переменные SHLIB_LINK и PG_CPPFLAGS, используем путь до уже установленной библиотеки freeTDS (путь запоминали в пункте 6 предыдущего блока)   Выполняем команду   make USE_PGXS=1 install Проверяем вывод команды. Ошибок быть не должно. Минутка траблшутинга Если возникает ошибка make: pg_config: Command not found а. Проверить наличие файла pg_config на системе. Можно искать через WinSCP или командой в консоли find / -depth -name "pg_config"  b. Если файл отсутствует, проверить наличие пакета postgres\*version\* -devel-\* командой   rpm -qa | grep postgres  Если пакета нет, его нужно установить.  В условиях отсутствия интернета качаем для этого rpm руками, перекидываем на сервер и устанавливаем командой yum localinstall /path/to/rpm/package.rpm c. Проверяем наличие pg_config файла. Он должен появиться    Находим файл tds_fdw.so и проверяем его зависимые библиотеки   ldd /path/to/file/tds_fdw.so Проверяем, что путь до lybsybdb.so.5 указан корректно. Если путь не указан, добавляем линку в папку /usr/lib/ , а затем выполняем ldconfig  ln -s /usr/local/freetds/lib/libsybdb.so.5 /usr/lib/libsybdb.so.5 && ldconfig НА ЭТОМ ЭТАПЕ РАБОТА С СЕРВЕРОМ ЗАВЕРШЕНА, ПЕРЕХОДИМ В POSTGRESQL КОНСОЛЬ Создаем расширение CREATE EXTENSION tds_fdw; Если расширение создалось успешно, значит, мы правильно подключили tds_fdw модуль.  Создаем объект сервера  CREATE SERVER serverName FOREIGN DATA WRAPPER tds_fdw  OPTIONS (servername 'serverName_fromFreetdsConf', database 'dbName', msg_handler 'notice'); serverName - любое имя связанного сервера, которое мы будем использовать в sql запросах serverName_fromFreetdsConf - имя сервера, конфигурацию которого мы прописывали в freetds.conf файле в блоке 1 Выполняем маппинг текущего пользователя на созданный сервер   CREATE USER MAPPING FOR CURRENT_USER SERVER serverName OPTIONS (username 'dbUser', password 'dbUserPswd'); Импортируем схему со связанного сервера  IMPORT FOREIGN SCHEMA dbo FROM SERVER serverName INTO localSchema; dbo - имя схемы из MS базы (в MS базах не принято делить на схемы, поэтому используется дефолтная dbo) serverName - имя связанного сервера localSchema - имя схемы в нашей pg базе (должна быть создана до выполнения импорта) Радуемся жизни, либо траблшутим проблемы несовместимости баз.