CftClub.ru
Клуб специалистов ЦФТ-Банк

пересоздание синонимов
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа и журналирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеЧт Апр 16, 2015 09:08   пересоздание синонимов Ответить с цитатой
Полезность: Нет оценки
А как можно пересоздать синонимы у всех пользователей? В АРМе доступа этот пункт криво работает - точнее никак не работает. Можно пересоздать только одному, чтобы пересоздать следующему надо перезайти в АРМ. Какие еще варианты массового пересоздания? Спасибо.

Вот это SecAdmin.CreateSynonymsForSubject(u.[USERNAME],True, True); Работает только 1 раз. Чтобы сработало еще - надо перезайти в навигатор. В общем как в АРМе доступа
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Апр 16, 2015 09:37    Ответить с цитатой
Полезность: 1
как то так, например


Код:

   v_uname   rtl.string40_table;
   v_utype rtl.boolstring_table;

                 v_clear boolean := true;  -- Признак удаления неиспользуемых прав




   -- загрузка списка субъектов доступа
   select u(u.[username],decode(u.lock_status,'DELETED','D','TO_DELETE','D',u.[type])) in users%rowtype
    where u.[username]<>owner and u.[type] is not null
     into v_uname,v_utype;
   -- раздача прав на объекты-зависимости отчетов
   for u in 1..v_uname.count where v_utype(u)<>'D'
   loop
      begin
         secadmin.SetReportRightsForSubject(v_uname(u),v_clear,true,false);
         write_log('RIGHTS');
      exception when others then
         debug_log(v_uname(u)||': '||sqlerrm,0,false,'ERROR');
      end;
   end loop;
   commit;
   -- раздача грантов на пакеты-зависимости отчетов и создание синонимов
   for u in 1..v_uname.count where v_utype(u)<>'G'
   loop
      begin
         secadmin.CreateSynonymsForSubject(v_uname(u),v_clear,true);
         write_log('GRANTS');
      exception when others then
         debug_log(v_uname(u)||': '||sqlerrm,0,false,'ERROR');
      end;
   end loop;
                commit;

Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеЧт Апр 16, 2015 09:43    Ответить с цитатой
Полезность: Нет оценки
Так срабатывает только у первого юзера. У остальных все ОК, но не пересоздзает. АРМ доступа также делает. Если перезайти опять один раз пересоздаст.

попробовал commit поставить после каждого пересоздания - не помогло. Видимо в контекст или еще куда сохраняет что то. Помогает только перезаход, чтобы почистилось.
Igorka
Профи


Вступление в Клуб: 28.09.2007
СообщениеЧт Апр 16, 2015 12:46    Ответить с цитатой
Полезность: 1
C_SYN.SQL в пакете обновления ядра вроде есть
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеЧт Апр 16, 2015 13:02    Ответить с цитатой
Полезность: 1
Igorka пишет:
C_SYN.SQL в пакете обновления ядра вроде есть


Спасибо за наводку . Дело в параметре максимальное кол-во ролей. Видимо по умолчанию 1. Добавил в операцию перед пересозданием синонимов вот это
secadmin.set_max_report_roles(20);
Интересно для чего это ограничение и почему в АРМ доступа его не поправят?
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеЧт Апр 16, 2015 14:10    Ответить с цитатой
Полезность: Нет оценки
вопрос в догонку.
Может у нас какие то параметры на схеме неправильные? И при накатах ядра эти синонимы не пересоздаются? И АРМ доступа возможно криво поэтому же работает?

В этом же скрипте C_SYN.sql есть строка exec :sMode:= '&&reproles'
Откуда это количество берет?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 22, 2015 16:03   Re: пересоздание синонимов Ответить с цитатой
Полезность: Нет оценки
Наблюдал ситуацию, что при последовательном вызове SecAdmin.CreateSynonymsForSubject во второй и последующие разы не создаются все синонимы. Перезапуск в новой сессии помогал.
ЦФТ ответил, что с ТЯ 7.3 используется некое кэширование и перед SecAdmin.CreateSynonymsForSubject необходимо сбрасывать кэш SecAdmin.reset_report_roles_cache.

Gobur пишет:
В АРМе доступа этот пункт криво работает - точнее никак не работает. Можно пересоздать только одному, чтобы пересоздать следующему надо перезайти в АРМ. Какие еще варианты массового пересоздания?
Такого у себя не наблюдаю. Может устарел UADM?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 22, 2015 16:08    Ответить с цитатой
Полезность: 1
vtar пишет:
как то так, например
Код:

...secadmin.SetReportRightsForSubject(v_uname(u),v_clear,true,false);
         write_log('RIGHTS');
...

для вывода информации о выполненных действиях после SetReportRightsForSubject использую конструкцию:
Код:
stdio.put_line_pipe(executor.Get_Debug_text('B',true),'DEBUG$100');
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеСр Апр 22, 2015 16:19   Re: пересоздание синонимов Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
Наблюдал ситуацию, что при последовательном вызове SecAdmin.CreateSynonymsForSubject во второй и последующие разы не создаются все синонимы. Перезапуск в новой сессии помогал.
ЦФТ ответил, что с ТЯ 7.3 используется некое кэширование и перед SecAdmin.CreateSynonymsForSubject необходимо сбрасывать кэш SecAdmin.reset_report_roles_cache.



Спасибо - попробую . Хотя помогал и вариант, который я описал. UADM старый, новый я так понимаю тока под WIN7 работает?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 22, 2015 16:43   Re: пересоздание синонимов Ответить с цитатой
Полезность: Нет оценки
Gobur пишет:
UADM старый, новый я так понимаю тока под WIN7 работает?
Да
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Май 18, 2015 16:17   Re: пересоздание синонимов Ответить с цитатой
Полезность: Нет оценки
А в новом Арме доступа не было проблем при разблокировке пользователя
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПн Май 18, 2015 16:59    Ответить с цитатой
Полезность: 1
По-моему, не работает разблокировка с одновременным изменением пароля. Без изменения пароля - работает.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеВт Май 19, 2015 12:32    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
По-моему, не работает разблокировка с одновременным изменением пароля. Без изменения пароля - работает.


спасибо, помогло. Думал джоб стал криво работать.

З.Ы. Пересоздание синонимов всем пользователям поправили. Теперь через АРМ корректно отрабатывает.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеВт Май 19, 2015 12:34    Ответить с цитатой
Полезность: Нет оценки
раз проблема подтвердилась, то зарегистрирую заявку

PS. ЦФТ признал несоответствие BS00926463, планируется завершить 16.08.2015 18:00:00.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеСр Май 27, 2015 08:16    Ответить с цитатой
Полезность: Нет оценки
Чтоб не заводить новуб темку спрошу здесь. Видел пункт в новом АРМе - пересоздание контекста у пользователя. А программно это можно сделать?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа и журналирование Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru