Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

При подключении по ODBC к серверу Sybase SQL Anywhere возможность доступа с шифрованием есть - ответ технической поддержки Sybase.

Это даже видно создав DSN по ODBC для Sybase SQL Anywhere - Network - Packet Encryption.

Вот только все мои попытки с строкой соединения по ODBC пока безуспешны. :(

Пожалуйста, приведите в пример работающую строку соединения для Clarion к Sybase SQL Anywhere (пусть пока без шифрования) по ODBC.

И ещё вопрос - в поле ввода для переменной GLO:ConnectionString Column Properties -> Attributes -> Initial Value -
строка соединения содержит ограничивающие кавычки или апострофы или нет?
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Developer писал(а):Вот только все мои попытки с строкой соединения по ODBC пока безуспешны.
Я уже писал. OwnerName = 'ODBCSource,UserName,Password'.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Kreator спасибо за отклик!

Проблема была в несоответствии типа драйвера Clarion и содержания строки GLO:ConnectionString (драйвер Clarion SQLAnywhere - строка для ODBC), а также различиях в поддерживаемых типах данных (особенностях каждого типа драйвера SQLAnywhere и ODBC).

Всегда применял тип драйвера Clarion SQLAnywhere для доступа к серверу
Sybase SQL Anywhere (ASA) и проблем никогда не было :D

Но обнаружил что для создания соединения через Internet нативный драйвер Clarion SQLAnywhere не имеет поддержки шифрованного соединения.

Впрочем, тема поддержки шифрованного соединения с сервером Sybase SQL Anywhere (ASA) драйвером Clarion SQLAnywhere пока не раскрыта.

Но в строку соединения для драйвера Clarion SQLAnywhere (согласно DatabaseDrivers.pdf
page 289) входят только engine,username,password

Возможно ли добавить шифрование для драйвера Clarion SQLAnywhere большой вопрос :?:

Вопрос ко всем кто использует в работе сервера баз данных, какой драйвер предпочитаете:
нативный под конкретный тип сервера или драйвер Clarion ODBC :?:

В чём преимущества и недостатки?

(Читал DatabaseDrivers.pdf page 244, но хотелось услышать мнение участников форума!)

Возможно ли использовать с драйвером Clarion ODBC DSN-Less (без источника ODBC) :?:
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Developer писал(а):Вопрос ко всем кто использует в работе сервера баз данных, какой драйвер предпочитаете:
нативный под конкретный тип сервера или драйвер Clarion ODBC

В чём преимущества и недостатки?
(Читал DatabaseDrivers.pdf page 244, но хотелось услышать мнение участников форума!)
Ну раз уж возник вопрос. Начал реанимировать старую разработку под SQLAnywhere. Поменял сервер на 12 (пока). Пытаюсь слезть с ODBC. Почему? На тот момент (давно) у Clarion нативный драйвер Sybase был кривой (поддерживал Sybase 5.5 только, хотя у меня был Sybase 7, поэтому коннектится не хотел), пришлось использовать ODBC. Сейчас столкнулся со следующей проблемой. Autoincrement у меня делался на клиент штатными средствами Клариона. При переходе на 12 сервер это дело стало тормозить (метод Autoinc почему-то так отрабатывает). Особенно это заметно на таблице, где ~2млн. записей. Переход на C10 в этом плане ничего не дал. Перенёс autoincrement на сервер. Оказалось Кларионовский ODBC драйвер не поддерживает свойство ServerAutoInc (хотя судя по мануалу проблем быть не должно, проверено ещё на Firedird, такая же ситуация). На что это влияет? При добавлении записи в таблицу происходит неправильное позиционирование (всегда, если сортировка идёт по первичному ключу), при удалении тоже самое, причём всегда. На "Удаление" можно закрыть глаза, а вот на "добавление" нет. Борьба со свойствами драйвера ODBC ни к чему не привела. С нативным драйвером проблем нет. И по скорости на первый взгляд нативный побыстрей, хотя не факт.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Дед Пахом писал(а): я чего-то не понял? В чём проблема прописать в строке подключения к SQL серверу его адрес?
Пример строки подключения к серверу Sybase SQL Anywhere для драйвера Clarion SQLAnywhere по конкретному IP адресу хоста для проведения эксперимента есть? :?:

В локальной сети доступ есть по имени сервера (Sybase SQL Anywhere), для Internet необходимо указать внешний IP адрес.

Пока никаких успехов :(

Какие ещё условия необходимо соблюсти, для получения доступа к базе данных сервера (Sybase SQL Anywhere) из приложения Clarion через Internet :?:
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Речь, наверно вот о чём. Вот строка подключения у меня дома:

Код: Выделить всё

;UID=dba;PWD=wasp;ENG=J;Driver={SQL Anywhere 12};SERVER=192.168.1.11
Всё хорошо подключается. Завтра собирался к заказчику попробовать (там пока ODBC). Чисто теоретически - нет разницы, где сервер, ip известен и этого должно быть достаточно. Для внешнего соединения нужен внешний ip адрес. Как в моём случае к серверу 192.168.1.11 снаружи не достучаться.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Kreator Спасибо за отклик!

Вопрос: для какого драйвера Clarion эта строка?
kreator писал(а): ;UID=dba;PWD=wasp;ENG=J;Driver={SQL Anywhere 12};SERVER=192.168.1.11
Интересует в основном, работа через Internet для драйвера Clarion SQLAnywhere.
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Developer писал(а):Вопрос: для какого драйвера Clarion эта строка?


kreator писал(а):Qr Bbpost ;UID=dba;PWD=wasp;ENG=J;Driver={SQL Anywhere 12};SERVER=192.168.1.11
Явно же указано - Driver={SQL Anywhere 12};.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Я имел ввиду, когда в описании таблицы используешь

FILE,DRIVER('SQLAnywhere'),OWNER(GLO:ConnectionString)

или

FILE,DRIVER('ODBC'),OWNER(GLO:ConnectionString)

Применимо (работает) ли одно и тоже значение строки соединения?
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Дополнение:
Значение ENG=J -> Означает запуск локального сервера Sybase SQL Anywhere dbengXX.exe.
Локальный сервер у меня автоматически стартует при запуске приложения, монтирует базу и приложение работает, с этим проблем нет :D

Мне необходима работа с сетевым сервером dbsrvXX.exe через Internet по шифрованному каналу, вот тут проблема:

Необходимо получить удалённый доступ к смонтированной базе Sybase SQL Anywhere (сетевой вариант сервера dbsrvXX.exe и автоматически запустить его, если он не работает) :?:
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Честно, уже не понимаю что надо. На сервере с ip 192.168.1.11 запущен сервер SQLAnywhere12 c с именем J (естественно, dbsrv). Естественно, что драйвер нативный, а не ODBC. Для ODBC вот так:

Код: Выделить всё

GLO:ConnectionString = 'J,dba,wasp'
, где J - имя источника данных.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

kreator писал(а): Честно, уже не понимаю что надо. На сервере с ip 192.168.1.11 запущен сервер SQLAnywhere12 c с именем J (естественно, dbsrv). Естественно, что драйвер нативный, а не ODBC. Для ODBC вот так:

Код: Выделить всё
GLO:ConnectionString = 'J,dba,wasp'

, где J - имя источника данных.
Где указать внешний IP адрес (адрес хоста и порта)? :?:

GLO:ConnectionString = 'J,dba,wasp' - это строка соединения для драйвера Sybase SQL Anywhere (DatabaseDrivers.pdf, p 289)
- J - это имя сервера Sybase SQL Anywhere

а мне необходимо указание в строке соединения для драйвера Clarion SQLAnywhere адреса хоста (компьютера с доступом в Internet) на котором работает Sybase SQL Anywhere,
имя сервера Sybase SQL Anywhere, а ткже возможность работы соединения с шифрованием TLS :D
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Давай свои параметры (ip адрес хоста, на котором запущен сервер SQLAnywhere и имя этого сервера), я напишу тебе строку подключения.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение Developer »

Обнаружил, что Connection String возможно получить через Sybase Central :D
Connection String возвращаемое Sybase Central для ODBC.

А какая строка для Clarion SQLAnywhere? :?:

Адрес хоста XXX.XXX.XXX.XXX Port=2638 (не могу сообщить реальный адрес)
ServerName=SybaseASAServerName,
ServerDataBaseName=SybaseASAServerDataBaseName
certificate_company=Company
certificate_name=Certificate.crt
TLS_type=RSA
FIPS=Yes



У меня проблема соединения наверное не только в строке соединения:
попытка соединения через
Sybase Central
Connect to a running database in cloud

Test Connection - по локальной сети - без проблем :D
По локальной сети приложение Clarion получают доступ к базе данных Sybase SQL Anywhere :D

Через Internet (внешний IP адрес) по Sybase Central - Ping - Successfuly pinged :D
Test Connection - через Internet - проблема - доступа нет :(
Через Internet приложение Clarion не получает доступ к базе данных Sybase SQL Anywhere :(
Сканирование доступного внешнего IP адреса показывает недоступность стандартного порта 2638 для Sybase SQL Anywhere :D :( :wink:
Вот в этом, основная проблема доступа к серверу Sybase SQL Anywhere :( :D
Наверное, необходимо делать проброс портов на маршрутизаторе :D
А вот как быть с доступностью порта 2638 для Sybase SQL Anywhere для GSM модема или при получении доступа в Internet
через WiFi с смартфона? :?:
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 5183
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Доступ к базе SQL Anywhere через Internet по динамическому IP на сервере и клиенте

Сообщение kreator »

Developer писал(а):Сканирование доступного внешнего IP адреса показывает недоступность стандартного порта 2638 для Sybase SQL Anywhere
Ну это наверно к админам. Например, в Windows Server 2008R2 есть настройка политики безопасности, где указывается - какой программе что разрешено. Я, например, явно указываю, что dbsrv12.exe разрешено принимать пакеты со всех ip адресов и со всех портов.
We are hard at work… for you. :)
Ответить