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

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

Добавлено: 04 Декабрь 2014, 0:39
Shur
А каким образом применить SQL скрипт, если нет системного администратора баз данных SQL у конечного пользователя, нет инструментария для интерактивного выполнения SQL скрипта, конечный пользователь не компетентен и не желает делать лишних движений.
Я, к сожалению, не специалист в SQL Anywhere, но, боюсь, что если дело обстоит таким образом, то здесь ничто не поможет. Ведь системные логин и пароль всё равно надо знать на момент создания базы.
Для создания же БД, надо полагать, должна помочь утилита dbisql.com (http://sqlanywhere-forum.sap.com/questi ... mmand-line)

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

Добавлено: 04 Декабрь 2014, 7:37
Developer
Shur спасибо за конкретный ответ!

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

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

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

Возможно ли создание новой базы данных Sybase SQL Anywhere утилитами dbisql.com dbisql.exe без наличия существующей?

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

Добавлено: 04 Декабрь 2014, 10:58
kreator
Developer писал(а):Однако, все предложения использования внешнего SQL скрипта хорошо применимы при наличии системного администратора баз данных SQL у конечного пользователя.
Я так понимаю, что Sybase должен использоваться в сети, где есть какое-то кол-во рабочих станций и сервер. Поэтому непонятно отсутствие системного администратора. Пусть даже так. Но, чтобы Sybase заработал, нужно приехать в контору и установить сервер Sybase, и, может быть, что-нибудь сделать на клиентских станциях. Вот на этом этапе можно запускать скрипт, или ещё лучше просто пустую базу дать и всё. Админ не нужен. Если нужны будут какие-то изменения в структуре БД, то тут без скриптов или удалённого доступа не обойтись. Я думаю, не проблема, если конторы дадут доступ разработчику к БД по удалёнке.

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

Добавлено: 04 Декабрь 2014, 11:40
Developer
Kreator спасибо за отклик!

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

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

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

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

Применение сервера SQL Sybase Anywhere обусловлено заменой файлов Clarion TPS в связи с наличием ограничения в 2Gb на файл.

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

Добавлено: 04 Декабрь 2014, 13:59
kreator
Хорошо. БД, по-моему, изначально зашифрована. У кого пароль DBA? Админов нет, программисту доступа нет. Ещё раз. У кого пароль DBA?

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

Добавлено: 04 Декабрь 2014, 15:00
Developer
Пароль DBA у самого пользователя в шифрованном файле TPS, он может обладать правами администратора базы данных, но он не профессиональный администратор, он обычный пользователь.

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

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

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

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

Имея данные администратора сервера Sybase Anywhere возможно программно выполнить скрипт SQL как из приложения Clarion так и через вызов из приложения Clarion утилиты dbisql.com или dbisql.exe.

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

Добавлено: 04 Декабрь 2014, 16:04
kreator
Предполагается, что первый пользователь не запоминает этот пароль (DBA)? И никто его не знает? И через Sybase Central не подключиться к базе? А что делать, если шифрованный TPS грохнут?

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

Добавлено: 04 Декабрь 2014, 16:43
Дед Пахом
да ладно, всем и так ясно, что пароль "1234".

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

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

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

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

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

Если есть какие идеи, прошу сообщить.

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

Добавлено: 04 Декабрь 2014, 17:20
PavelNK
Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы

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

Добавлено: 04 Декабрь 2014, 18:14
kreator
PavelNK писал(а):Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы
Как можно выполнить скрипт, если доступа к БД нет?
Предлагаю, всё же создать, например, пользователя с правами DBA, пароль которого знает только разработчик. У кого-то должен быть доступ к БД. Иначе работа программного комплекса (громко так сказал) до первой потери tps файла.
Ещё пример из жизни. В одной конторе крутится моя программа как раз на Sybase. Я создаю пользователя "Администратор" с правами DBA. Он может делать много чего, но пароль пользователя "DBA" знаю только я. И при проблемах всяких-разных с БД и с "Администратором" я могу помочь.

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

Добавлено: 04 Декабрь 2014, 21:56
PavelNK
kreator писал(а):
PavelNK писал(а):Можно написать скрипт, в виде обычного текстового файла. Его можно выполнять хоть из среды, хоть из программы
Как можно выполнить скрипт, если доступа к БД нет?
Предлагаю, всё же создать, например, пользователя с правами DBA, пароль которого знает только разработчик. У кого-то должен быть доступ к БД. Иначе работа программного комплекса (громко так сказал) до первой потери tps файла.
Ещё пример из жизни. В одной конторе крутится моя программа как раз на Sybase. Я создаю пользователя "Администратор" с правами DBA. Он может делать много чего, но пароль пользователя "DBA" знаю только я. И при проблемах всяких-разных с БД и с "Администратором" я могу помочь.
Если доступа нет, то как вообще может работать программа с БД?!

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

Добавлено: 04 Декабрь 2014, 22:35
kreator
PavelNK писал(а):Если доступа нет, то как вообще может работать программа с БД?!
По легенде есть один пользователь DBA, ему пароль назначает случайный первый пользователь. Потом он (пароль) зашивается в TPS файл и никто его не может узнать. Поэтому возможности для работы с БД есть только те, которые предоставил программист, до того, как в программу вошёл первый пользователь. Правда, вроде как есть возможность запустить из командной строки Interactive SQL опять же подставив в качестве параметра пользователя/пароль, он позволяет писать SQL запросы. Только спецы по Oracle могут админить SQL базу из командной строки. :mrgreen: Получается, что программист в своём продукте должен предоставить те же возможности по работе с БД, что и штатные средства вендоров. Реально?

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

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