Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
Есть необходимость из одной базы данных перекидывать пользователй в другую базу данных Создали промежуточную таблицу. В нее закидываем пользователей из системной таблицы и потом через 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' Как этого можно добиться, т.е. транслировать пароли при выгрузке шестнацатиричный формат? Или что-нибудь другое можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2007, 17:46 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
Замени в своем алгоритме вот эту строку: JetAlexСоздали промежуточную таблицу. В нее закидываем пользователей из системной таблицы и потом через unload выгружаем. на: ЯСоздали таблицу. В нее пишем новых пользователей а потом на ее основе регистрируем пользователей на системном уровне. При необходимости выгружаем список пользователей и отсылаем его на удаленные базы.Задача решается намного проще в итоге :) --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2007, 17:57 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
Уточняю. Мы делаем программный продукт на базе ASA. С определенной переодичностью происходит рассылка обновлений по всем нашим клиентам. В этом обновлении кроме непосрдсвенно программы есть и пустая база. А клиенты у себя делают выгрузку из старой базы, а потом уже загрузку в новую. Т.е. не мы централизованно рассылаем пользователей по удаленным базам, а каждый клиент должен выгрузить именно своих пользователей из свой базы, а потом уже загрузить их в новую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2007, 18:35 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
неужели программа меняется с каждой версией так кардинально, что обновление ее структуры грамотно написанными скриптами уже не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2007, 22:45 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
А зачем писать скрипт на обновление? Это значит потратить время. Есть ужу написанные ХП для выгрузки и загрузки таблиц. Таблцы новые добавляются не часто, по этому трудозатрат на изменение ХП практически никаких. А вот поля новые добавляются - это бывает, ну запросы различные частенько дописываем. Так что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант. А по существу моего вопроса нет вариантов решения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 13:03 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
JetAlexТак что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант. но не для пользователей вашего софта разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 13:06 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
komradно не для пользователей вашего софта разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедур +1 К тому же написание таких скриптов позволяет самим разработчикам ясно осознавать, что же у них изменилось, и какие сопутствующие изменения нужно внести в использующие БД приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 14:26 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
komrad JetAlexТак что обновление через выгрузку загрузку данных - самый экономичный вариант для нас как раработчиков вариант. но не для пользователей вашего софта разумнее было бы выпускать патчи - скрипты по модификации таблиц и процедурВот-вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 18:15 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
Смотря как считать ) Программист потратит 1 час на написание скрипта - этот же час надо будет программисту оплатить. ) А база постоянно постоянно дописывается. Клиентов у же достаточно много, бизнес процессы чуть-чуть да отличаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:18 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
JetAlexСмотря как считать ) Программист потратит 1 час на написание скрипта - этот же час надо будет программисту оплатить. ) А база постоянно постоянно дописывается. Клиентов у же достаточно много, бизнес процессы чуть-чуть да отличаются. ;)) хехе, и вы возложили эту (свою!) проблему на плечи клиента ... молодцы ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:30 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
2JetAlex: вы лучше реорганизуйте процесс и преподнесите его клиентам как новую фичу - "вы для нас важны и мы оптимизировали процесс перехода на новые версии ПО" у вас "программисты" как схему данных, БД перестраивают? какими инструментами? имхо почти все тулзы умеют генерить скрипты, так что "программисту" останется только сохранять их в репозиторий в ветку нового билда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:34 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
И какой "тулз" посоветуете? Кстати для клиента это не так тяжело. В приложении есть кнопка "Выгрузить базу". И кнопка - "загрузить базу". Нажать подряд две кнопки в приложении, наверное, не сложно. А? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:42 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
наверное лучше одна кнопка "обновить версию" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:55 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
JetAlex Кстати для клиента это не так тяжело. В приложении есть кнопка "Выгрузить базу". И кнопка - "загрузить базу". Нажать подряд две кнопки в приложении, наверное, не сложно. А? Да.... Подход "нормальный" Не знаю, какие у Вас там база и приложение, но если я(клиент) так буду обновлять базу ASA системы, которая у нас в фирме работает, то ..... Промолчу, что будет. Наши разработчики используют Sybase PowerDesigner. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 15:09 |
|
||
|
Проблема загрузки пользователей
|
|||
|---|---|---|---|
|
#18+
JetAlexИ какой "тулз" посоветуете? как уже сказали, можно использовать "родную" тулзу от Sybase - PowerDesigner. некоторым больше нравится ErWin суть у них одна JetAlex Кстати для клиента это не так тяжело. В приложении есть кнопка "Выгрузить базу". И кнопка - "загрузить базу". Нажать подряд две кнопки в приложении, наверное, не сложно. А? да не сложно, конечно... только, имхо, данный подход идеологически неверен его изъяны сперва может и не видны на маленьких базах, но на больших - бОльшие накладные расходы (место на файловой системе, время миграции и след-но недоступность приложения, всевозможные накладки и человеческий фактор) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 15:29 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34312902&tid=2012273]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 414ms |

| 0 / 0 |
