Применение три́ггера (хранимой процедуры) в Clarion

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Shur »

А каким образом применить SQL скрипт, если нет системного администратора баз данных SQL у конечного пользователя, нет инструментария для интерактивного выполнения SQL скрипта, конечный пользователь не компетентен и не желает делать лишних движений.
Я, к сожалению, не специалист в SQL Anywhere, но, боюсь, что если дело обстоит таким образом, то здесь ничто не поможет. Ведь системные логин и пароль всё равно надо знать на момент создания базы.
Для создания же БД, надо полагать, должна помочь утилита dbisql.com (http://sqlanywhere-forum.sap.com/questi ... mmand-line)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Developer »

Shur спасибо за конкретный ответ!

Для создания (инициализации) пустой зашифрованной базы Sybase SQL Anywhere применяю утилиту dbinit.exe.
Для создания же БД, надо полагать, должна помочь утилита dbisql.com (http://sqlanywhere-forum.sap.com/questi ... mmand-line)
Возможно ли создать пустую зашифрованную базу по SQL скрипту мне не известно. Надо изучить возможность данного решения.
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Developer »

Создание базы данных по скрипту SQL утилитами dbisql.com dbisql.exe возможно, однако требует наличия и подключения к существующей базе данных Sybsase SQL Anywhere, тогда как применение утилиты dbinit.exe создаёт новую базу без наличия существующей.

Возможно ли создание новой базы данных Sybase SQL Anywhere утилитами dbisql.com dbisql.exe без наличия существующей?
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение kreator »

Developer писал(а):Однако, все предложения использования внешнего SQL скрипта хорошо применимы при наличии системного администратора баз данных SQL у конечного пользователя.
Я так понимаю, что Sybase должен использоваться в сети, где есть какое-то кол-во рабочих станций и сервер. Поэтому непонятно отсутствие системного администратора. Пусть даже так. Но, чтобы Sybase заработал, нужно приехать в контору и установить сервер Sybase, и, может быть, что-нибудь сделать на клиентских станциях. Вот на этом этапе можно запускать скрипт, или ещё лучше просто пустую базу дать и всё. Админ не нужен. Если нужны будут какие-то изменения в структуре БД, то тут без скриптов или удалённого доступа не обойтись. Я думаю, не проблема, если конторы дадут доступ разработчику к БД по удалёнке.
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Developer »

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

Для работы сервера SQL Sybase Anywhere установка не обязательна (хотя и желательна) - достаточно файла dbsrvXX.exe и наличия нескольких dll.

Работа возможна как локально так и по сети.

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

База данных должна быть зашифрована. Пароль (ключ) шифрования на базу данных не должен быть известен программисту.
Удалённый доступ по соображениям безопасности не разрешён!

Применение сервера SQL Sybase Anywhere обусловлено заменой файлов Clarion TPS в связи с наличием ограничения в 2Gb на файл.
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение kreator »

Хорошо. БД, по-моему, изначально зашифрована. У кого пароль DBA? Админов нет, программисту доступа нет. Ещё раз. У кого пароль DBA?
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Developer »

Пароль DBA у самого пользователя в шифрованном файле TPS, он может обладать правами администратора базы данных, но он не профессиональный администратор, он обычный пользователь.

Это как обычный пользователь Windows с правами администратора.

Сгенерированный пароль DBA в открытом виде пользователю как и программисту не доступен.

Шифрованный файл TPS будет создан при первом запуске приложения Clarion по введённому паролю пользователя и этот пароль есть главный Master пароль когда пользователь открывает приложение Clarion. В данном файле будет информация о логине и пароле для доступа к серверу Sybase Anywhere.

Таким образом, для получения доступа к базе данных SQL Anywhere с правами администратора необходимо пользователю ввести Master пароль и программный код Clarion который выполняет функцию администратора базы данных получит полный доступ к базе данных.

Имея данные администратора сервера Sybase Anywhere возможно программно выполнить скрипт SQL как из приложения Clarion так и через вызов из приложения Clarion утилиты dbisql.com или dbisql.exe.
С Уважением, Developer
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение kreator »

Предполагается, что первый пользователь не запоминает этот пароль (DBA)? И никто его не знает? И через Sybase Central не подключиться к базе? А что делать, если шифрованный TPS грохнут?
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Дед Пахом »

да ладно, всем и так ясно, что пароль "1234".
С уважением, ДП
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Developer »

А что делать, если шифрованный TPS грохнут?
Да, а вот с этим могут быть серьёзные проблемы.

Необходимо продумать комплекс мероприятий в случае повреждения файла, где будут учётные записи доступа к серверу.

Пока это только концептуальная идея, вопросов больше чем ответов.

Получить помощь, кроме как на форуме мне больше нет возможности.

Если есть какие идеи, прошу сообщить.
С Уважением, Developer
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение PavelNK »

Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение kreator »

PavelNK писал(а):Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы
Как можно выполнить скрипт, если доступа к БД нет?
Предлагаю, всё же создать, например, пользователя с правами DBA, пароль которого знает только разработчик. У кого-то должен быть доступ к БД. Иначе работа программного комплекса (громко так сказал) до первой потери tps файла.
Ещё пример из жизни. В одной конторе крутится моя программа как раз на Sybase. Я создаю пользователя "Администратор" с правами DBA. Он может делать много чего, но пароль пользователя "DBA" знаю только я. И при проблемах всяких-разных с БД и с "Администратором" я могу помочь.
We are hard at work… for you. :)
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение PavelNK »

kreator писал(а):
PavelNK писал(а):Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы
Как можно выполнить скрипт, если доступа к БД нет?
Предлагаю, всё же создать, например, пользователя с правами DBA, пароль которого знает только разработчик. У кого-то должен быть доступ к БД. Иначе работа программного комплекса (громко так сказал) до первой потери tps файла.
Ещё пример из жизни. В одной конторе крутится моя программа как раз на Sybase. Я создаю пользователя "Администратор" с правами DBA. Он может делать много чего, но пароль пользователя "DBA" знаю только я. И при проблемах всяких-разных с БД и с "Администратором" я могу помочь.
Если доступа нет, то как вообще может работать программа с БД?!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Применение три́ггера (хранимой процедуры) в Clarion

Сообщение kreator »

PavelNK писал(а):Если доступа нет, то как вообще может работать программа с БД?!
По легенде есть один пользователь DBA, ему пароль назначает случайный первый пользователь. Потом он (пароль) зашивается в TPS файл и никто его не может узнать. Поэтому возможности для работы с БД есть только те, которые предоставил программист, до того, как в программу вошёл первый пользователь. Правда, вроде как есть возможность запустить из командной строки Interactive SQL опять же подставив в качестве параметра пользователя/пароль, он позволяет писать SQL запросы. Только спецы по Oracle могут админить SQL базу из командной строки. :mrgreen: Получается, что программист в своём продукте должен предоставить те же возможности по работе с БД, что и штатные средства вендоров. Реально?
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Применение три́ггера (хранимой процедуры) в Clarion

Сообщение Shur »

Developer, чем, собственно, сердце успокоилось? Поделитесь состоянием проблемы.
Моё десктопное приложение тоже использкет tps-драйвер, а хотелось бы попробовать использовать что-то из sql-образного (в частности, чтобы в перспективе снять ограничение 2 Гб). А вот как это дело дистрибутировать и разворачивать не совсем понятно.
Ответить