powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема загрузки пользователей
15 сообщений из 15, страница 1 из 1
Проблема загрузки пользователей
    #34307313
JetAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть необходимость из одной базы данных перекидывать пользователй в другую базу данных

Создали промежуточную таблицу. В нее закидываем пользователей из системной таблицы и потом через unload выгружаем.
Загрузка происходит так. Через Load загружаем пользователей в промежуточную талицу,
далее процедурой через GRANT вставляем в базу.
Процедура ниже.

ALTER PROCEDURE DBA."INPUT_USER_GROUP" ()
BEGIN
DECLARE IN_USER_NAME VARCHAR(100);
DECLARE IN_PASSWORD BINARY(36);
DECLARE IN_GROUP_ID INTEGER;
DECLARE IN_REMARKS VARCHAR(250);
DECLARE IN_GROUP_NAME VARCHAR(100);
//
//
GroupLoop: for GroupFor as SelGroup dynamic scroll cursor for
SELECT USER_GROUP.USER_NAME,
USER_GROUP.REMARKS
FROM USER_GROUP
WHERE USER_GROUP.USER_GROUP='Y' DO
//
//
SET IN_USER_NAME=USER_GROUP.USER_NAME;
SET IN_REMARKS=USER_GROUP.REMARKS;
//
//
EXECUTE IMMEDIATE 'GRANT CONNECT TO ' || IN_USER_NAME;
//
//
EXECUTE IMMEDIATE 'GRANT GROUP TO ' || IN_USER_NAME;
//
//
EXECUTE IMMEDIATE 'COMMENT ON USER '|| IN_USER_NAME || ' IS ' ||CHAR(39)|| IN_REMARKS ||CHAR(39);

END FOR;
//
//
//
UserLoop: for UserFor as SelUser dynamic scroll cursor for
SELECT USER_GROUP.USER_NAME,
USER_GROUP.REMARKS,
USER_GROUP.PASSWORD,
USER_GROUP.GROUP_ID
FROM USER_GROUP
WHERE USER_GROUP.USER_GROUP='N' DO
//
//
SET IN_USER_NAME=USER_GROUP.USER_NAME;
SET IN_REMARKS=USER_GROUP.REMARKS;
SET IN_GROUP_ID=USER_GROUP.GROUP_ID;
SET IN_PASSWORD=USER_GROUP.PASSWORD;
//
//
//
EXECUTE IMMEDIATE 'GRANT CONNECT TO ' || IN_USER_NAME || ' IDENTIFIED BY '|| IN_PASSWORD;
//
//
EXECUTE IMMEDIATE 'COMMENT ON USER '|| IN_USER_NAME || ' IS ' || IN_REMARKS;
//
//
SELECT USER_NAME INTO IN_GROUP_NAME
FROM USER_NAME
WHERE USER_ID=IN_GROUP_ID;
//
//
//
EXECUTE IMMEDIATE 'GRANT MEMBERSHIP IN GROUP ' || IN_GROUP_NAME || ' TO ' || IN_USER_NAME

END FOR;
END


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

EXECUTE IMMEDIATE 'GRANT CONNECT TO ' || IN_USER_NAME || ' IDENTIFIED BY '|| IN_PASSWORD

То парметр IN_PASSWORD она переводит char.

Однако, если посмотреть файл RELOAD.SQL, который создает сам Sybase, то можно увидет что Unload wizard
транслирует пароли из бинарного формата в шестнадцатиричный, и потом спокойно их загружает

GRANT CONNECT TO "Kondratev" IDENTIFIED BY ENCRYPTED '\x49\x59\x3A\xC3\xB9\xDA\x91\x32\xB2\x83\x69\xA3\xD1\xB4\xB2\x39\x77\xD3\xC9\xEA\x27\x12\xE7\x68\x85\x14\xD2\xF1\x24\x40\x43\x68\xE8\x8D\x45\xB8'


Как этого можно добиться, т.е. транслировать пароли при выгрузке шестнацатиричный формат?
Или что-нибудь другое можно сделать?
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34307365
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замени в своем алгоритме вот эту строку:
JetAlexСоздали промежуточную таблицу. В нее закидываем пользователей из системной таблицы и потом через unload выгружаем.
на:
ЯСоздали таблицу. В нее пишем новых пользователей а потом на ее основе регистрируем пользователей на системном уровне. При необходимости выгружаем список пользователей и отсылаем его на удаленные базы.Задача решается намного проще в итоге :)


---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34307468
JetAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточняю.
Мы делаем программный продукт на базе ASA.
С определенной переодичностью происходит рассылка обновлений по
всем нашим клиентам. В этом обновлении кроме непосрдсвенно программы есть и пустая база.
А клиенты у себя делают выгрузку из старой базы, а потом уже загрузку в новую.

Т.е. не мы централизованно рассылаем пользователей по удаленным базам,
а каждый клиент должен выгрузить именно своих пользователей из свой базы, а потом
уже загрузить их в новую
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34307835
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели программа меняется с каждой версией так кардинально, что обновление ее структуры грамотно написанными скриптами уже не помогает?
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34309063
JetAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем писать скрипт на обновление? Это значит потратить время.
Есть ужу написанные ХП для выгрузки и загрузки таблиц. Таблцы новые добавляются не часто,
по этому трудозатрат на изменение ХП практически никаких.
А вот поля новые добавляются - это бывает, ну запросы различные частенько дописываем.

Так что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант.

А по существу моего вопроса нет вариантов решения ?
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34309076
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetAlexТак что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант.

но не для пользователей вашего софта
разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедур
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34309449
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradно не для пользователей вашего софта
разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедур
+1
К тому же написание таких скриптов позволяет самим разработчикам ясно осознавать, что же у них изменилось, и какие сопутствующие изменения нужно внести в использующие БД приложения.
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34310357
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad JetAlexТак что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант.

но не для пользователей вашего софта
разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедурВот-вот.
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312374
JetAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотря как считать )
Программист потратит 1 час на написание скрипта - этот же час надо будет программисту
оплатить. )

А база постоянно постоянно дописывается. Клиентов у же достаточно много,
бизнес процессы чуть-чуть да отличаются.
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312421
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetAlexСмотря как считать )
Программист потратит 1 час на написание скрипта - этот же час надо будет программисту
оплатить. )

А база постоянно постоянно дописывается. Клиентов у же достаточно много,
бизнес процессы чуть-чуть да отличаются.
;)) хехе, и вы возложили эту (свою!) проблему на плечи клиента ... молодцы ;))
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312448
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2JetAlex:
вы лучше реорганизуйте процесс и преподнесите его клиентам как новую фичу - "вы для нас важны и мы оптимизировали процесс перехода на новые версии ПО"

у вас "программисты" как схему данных, БД перестраивают? какими инструментами?
имхо почти все тулзы умеют генерить скрипты, так что "программисту" останется только сохранять их в репозиторий в ветку нового билда
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312485
JetAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И какой "тулз" посоветуете?

Кстати для клиента это не так тяжело.
В приложении есть кнопка "Выгрузить базу".
И кнопка - "загрузить базу".

Нажать подряд две кнопки в приложении, наверное, не сложно. А?
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312550
novik_one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное лучше одна кнопка "обновить версию"
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312902
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JetAlex
Кстати для клиента это не так тяжело.
В приложении есть кнопка "Выгрузить базу".
И кнопка - "загрузить базу".
Нажать подряд две кнопки в приложении, наверное, не сложно. А?

Да.... Подход "нормальный"
Не знаю, какие у Вас там база и приложение, но если я(клиент) так буду обновлять базу ASA системы, которая у нас в фирме работает, то ..... Промолчу, что будет.

Наши разработчики используют Sybase PowerDesigner.
...
Рейтинг: 0 / 0
Проблема загрузки пользователей
    #34312978
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetAlexИ какой "тулз" посоветуете?


как уже сказали, можно использовать "родную" тулзу от Sybase - PowerDesigner.
некоторым больше нравится ErWin
суть у них одна

JetAlex
Кстати для клиента это не так тяжело.
В приложении есть кнопка "Выгрузить базу".
И кнопка - "загрузить базу".

Нажать подряд две кнопки в приложении, наверное, не сложно. А?
да не сложно, конечно...
только, имхо, данный подход идеологически неверен
его изъяны сперва может и не видны на маленьких базах, но на больших - бОльшие накладные расходы (место на файловой системе, время миграции и след-но недоступность приложения, всевозможные накладки и человеческий фактор)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблема загрузки пользователей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]