Страница 2 из 4

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 12:33
Admin
finsoftrz писал(а): Я бы сказал так, связка рабочая, но концептуально хромая.
Все правильно сказал! :?

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 12:46
RaFaeL
Игорь Столяров писал(а): А если это "коробочный" продукт, который должен устанавливаться и работать где-тотам "во глубине сибирских руд", непонятно на каких компьютерах и версиях Windows, и использоваться людьми далекими от IT ? Что тогда делать ?
MS SQL Express чем не устраивает? Ставится очень легко, на клиентские машины ставить вообще ничего не надо, по сети программу запускаем и сразу все работает

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 12:48
Игорь Столяров
finsoftrz писал(а): Связка первасива с терминальным доступом - это очень круто
Здесь просто "терминальная сеть" выступает в роли таблетки от всего ... ;)
Медленный доступ ? Установите терминальную сеть !
Дохлые рабочие станции ? Установите терминальную сеть !
Юзеры лезут туда, куда не надо ? Установите терминальную сеть !
и т.д. и т.п. :)

Это все понятно, так и делаем, где это возможно. ... Если дальше идти в этом направлении - то придем к SaaS & Cloud. ;)

Pervasive.SQL (Btrieve) и сам по себе прекрасен, скорость доступа в сети выше раза в три по сравнению с TPS.
А в контексте Clarion - вдвойне. Если обходить некоторые мелкие нюансы (вроде Blob, ключи по Decimal и т.д.),
то можно программу с TPS БД собирать для Btrieve простой подменой словаря.
Но проблема та же - требуется файловый доступ, файлы БД в открытом доступе по сети ... :(

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 12:51
Игорь Столяров
RaFaeL писал(а): MS SQL Express чем не устраивает?
Да, это хороший вариант, особенно в контексте возможности использования в т.ч. и полноценного MS SQL.
Но для перехода с TPS надо перелопачивать весь код ...

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 12:59
RaFaeL
Игорь Столяров писал(а): Но для перехода с TPS надо перелопачивать весь код ...
У нас проект имеет две версии
Одна TPS, используется как однопользовательское бесплатное Демо
И коммерческая на MS SQL
Переводили в свое время постепенно. Исходники одни и те же, два словаря, их приходится периодически синхронизировать через txd но в целом проблем нет
Ранее была и многопользовательская версия на tps и клиент сам выбирал, что ему нравится, простота или безопасность, но надоели постоянно "падающие" файлы при активной многопользовательской сетевой работе и от неё пришлось отказаться
Есть флажок SQLFlag он вынесен в глобальный inc, по этому флажку внутри местами другой код (для ускорения, на запросах, в основном это отчеты, выборки, фильтры), но для начала можно и без него, т.е. формы, броузы и т.п. те же самые! Т.е. у нас есть каталог с программой на tps, меняем в нем словарь и inc с флажком и компилим - на выходе версия под MS SQL! Более того, однажды (случайно по разгильдяйству) выяснилось, что достаточно менять только dll с глобальными данными (в котором стоит декларация файлов) и все продолжает работать!

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 13:03
Игорь Столяров
RaFaeL писал(а): меняем в нем словарь и inc с флажком и компилим - на выходе версия под MS SQL!
Это интересная идея ... как-то она меня всегда пугала. Все-таки совсем разный вид доступа.
Надо на какой-нибудь игрушечной программке попробовать. Спасибо ! :)

Мы делали немного другой вариант.
Основной интерфейс работал с драйвером Btrieve, а запросы на SQL выполняли через Pervasive.SQL по тем же самым файлам БД.
Это в принципе, в P.SQL, реализован тот самый двойной подход к работе с файлами БД, которого так не хватает в TPS ....

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 13:12
RaFaeL
Игорь Столяров писал(а): Это интересная идея ... как-то она меня всегда пугала. Все-таки совсем разный вид доступа.Надо на какой-нибудь игрушечной программке попробовать. Спасибо !
Там конечно есть нюансы
Во-первых, правили abfile.clw (могу прислать) иначе были какие-то проблемы то ли с автонумерацией, то ли не помню уже с чем
Во-вторых, в словаре MS SQL на всех таблицах висит триггер с функцией вида if ABC:NumRec=0 then setnull(ABC:NumRec) если поле в SQL имеет связи а мы добавляем записи где эти поля пустые
В словаре на tps прописаны Cascade на удаление, в словаре SQL везде строго No Action а аналог прописан непосредственно в базе SQL
Броузы корректно работают ТОЛЬКО по уникальным ключам, т.е. во все ключи по которым броуз добавляем поле первичного ключа (если такового в таблице нет - добавляем)
Такого, в целом, много, но всё решается

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 13:53
kreator
У нас админы тоже такой вопрос подняли, но не для БД, а хранилица документов и фотографий, с которыми мы работаем через обычные кларионовские функции. Поэтому папку надо расшарить. Пока спустили на тормозах и вопрос здесь я не стал задавать. Но проработали.
Самый простой вариант - воспользоваться винапишной функцией createprocesswithlogonw. Она позволит exe-шнику запустится под пользователем с другими правами. Изначально пользователь папку не видит, а программа запускается по админом (условно говоря), который имеет доступ к папке.
Ещё тема - посмотреть в сторону ip-драйвера. 1С-ники сейчас могут работать через т.н. "сервер приложений 1С". Особых подробностей и они не знают. Но говорят, что он может работать в двух режимах - как простая прокладка между пользователем и данными, или может брать на себя задачи по обработке запросов, отчётов, в т.ч. может решить нашу проблему. Вот если бы кларионовский ip-драйвер имел бы такую функциональность. Или как? Есть у кого опыт работы с ip-драйвером?

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 14:51
Игорь Столяров
kreator писал(а): Ещё тема - посмотреть в сторону ip-драйвера.
Для C10 драйвер IP вообще существует в природе ?

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 15:08
gopstop2007
kreator писал(а):У нас админы тоже такой вопрос подняли, но не для БД, а хранилица документов и фотографий
а если их хранить в блобах?

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 19:45
Developer
Игорь Столяров писал(а): А вот с Pervasive.SQL (Btrieve) те же самые проблемы, что с TPS - требуется файловый доступ к БД.
Да, есть такая проблема :(

Радикальный вариант решения этой проблемы - доступ только по IP протоколу - файлы баз в сети не видны!

Варианты решения проблемы блокировки доступа к физическим файлам баз данных:
1)Clarion IP Driver (файловый доступ не нужен - работа только по IP протоколу)
2)ODBC (Clarion TPS ODBC) - нужен ODBC TPS v5 - где его взять?
ODBC TPS v4 - не работает на Windows x64
3)Сервер приложений - трехзвенная система доступа к базе данных (касательно Pervasive SQL и TPS)
4)Терминальный доступ
5)Изменение аттрибутов физических файлов баз данных
на скрытый, системный (защита только от неопытных пользователей)
6)Переход на SQL Server - лучшее решение настоящего времени
7)Облачные сервисы - решение ближайшего будующего

Самое простое решение - шифрование файлов TPS, изменение аттрибутов физических файлов баз данных
на скрытый, системный и держать файлы баз данных постоянно открытыми для невозможности удаления :mrgreen:

Для Actian (Pervasive) - только необходимо данное решение состыковать с приложением Clarion,
вот возможное решение - http://wi.tensor.ru/wiki/index.php/Орга ... вого_диска

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 21:39
Игорь Столяров
Developer писал(а): только необходимо данное решение состыковать с приложением Clarion
А что стыковать-то ? Это просто драйвер Pervasive.SQL.
По указанной ссылке написано, как БД СБИС переносится с Btrieve на P.SQL.

Я пробовал работать с Pervasive.SQL. Драйвер Clarion для этой БД достаточно грустный, в отличии от MS SQL.
Сама инструментальные средства работы с БД в P.SQL - убогие (по крайне в версии 9.XX)
Перенести БД с Btrieve на P.SQL - только вручную писать создание таблиц и переливать через код списки.

Как спрятать БД TPS в сети ?

Добавлено: 24 Октябрь 2015, 22:25
Developer
Вопрос практического применения - возможно ли работа без сетевого диска в Pervasive SQL 10 SP3 :?:

Мне Pervasive SQL не очень нравиться, однако его используем - и возникает переодически вопрос -
как оградить файлы баз данных Pervasive SQL от несанкционированного доступа и повреждения (удаления)?

К сожалению, больше никакой информации по работе по протоколу IP без сетевого русурса
для сервера Pervasive SQL 10SP3 не обнаружил :(

Вот ссылка на документ Pervasive SQL 10SP3 http://www.pervasive.com/Portals/55/doc ... 10_SP3.pdf - поддержка TCP/IP присутствует - необходим ли к нему сетевой ресурс?

Необходимо протестировать этот режим :wink:

Кто работает вплотную с Pervasive SQL 10S P3 - есть ли в нём режим без сетевого ресурса -
только доступ по IP :?:

Как спрятать БД TPS в сети ?

Добавлено: 25 Октябрь 2015, 12:48
kreator
gopstop2007 писал(а): kreator писал(а):У нас админы тоже такой вопрос подняли, но не для БД, а хранилица документов и фотографий
а если их хранить в блобах?
Пока не рассматривается вариант, планируется очень большое хранилище. Сейчас выделяют под это дело 5Тб. На несколько лет хватит, но вот иметь такую базу? Хотя почему нет? Firebird (БД на нём) позволяет сделать отдельный файл для таких случаев. Только не будет доступа через проводник, это плохо, надо интерфейс писать для всех.

Как спрятать БД TPS в сети ?

Добавлено: 25 Октябрь 2015, 13:08
gopstop2007
kreator писал(а):Пока не рассматривается вариант, планируется очень большое хранилище. Сейчас выделяют под это дело 5Тб. На несколько лет хватит, но вот иметь такую базу? Хотя почему нет? Firebird (БД на нём) позволяет сделать отдельный файл для таких случаев. Только не будет доступа через проводник, это плохо, надо интерфейс писать для всех.
с другой стороны будет разграничение прав на просмотр определенных фото и документов :) и кстати можно для лок пользователей за счет синхронизации подкачивать и хранить данные на их машинах, чтобы не загружать сеть.