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

доступ по реквизиту

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа и журналирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
pzz
Участник


Вступление в Клуб: 01.04.2010
СообщениеЧт Май 06, 2010 20:26   доступ по реквизиту Ответить с цитатой
Полезность: Нет оценки
Добрый день всем!
Подскажите, пожалуйста, как можно сформировать отчет по группам, пользователям на которых был настроен доступ по реквизиту.
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Май 07, 2010 06:08    Ответить с цитатой
Полезность: 1
Список таблиц системного ядра СИСТЕМЫ:
OBJECT_RIGHTS Права доступа субъектов к экземплярам ТБП
OBJECT_RIGHTS_EX Права доступа субъектов к экземплярам через реквизиты
OBJECT_RIGHTS_LIST Права доступа субъектов к экземплярам ТБП (исключения)
OBJECT_RULES Правила доступа к экземплярам ТБП
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Май 07, 2010 06:13    Ответить с цитатой
Полезность: Нет оценки
т.е. запрос примерено такой

Код:

select distinct SUBJ_ID from OBJECT_RIGHTS_EX
pzz
Участник


Вступление в Клуб: 01.04.2010
СообщениеПт Май 07, 2010 10:14    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
т.е. запрос примерено такой

Код:

select distinct SUBJ_ID from OBJECT_RIGHTS_EX




Спасибо! Smile
А как можно получить отчет, где будут отображаться объекты на которые дан доступ по реквизиту. и кому на эти объекты дан доступ?
что-то у меня не получается...
2mb
Участник


Вступление в Клуб: 23.04.2008
СообщениеВт Июл 27, 2010 14:53    Ответить с цитатой
Полезность: Нет оценки
Цитата:
А как можно получить отчет, где будут отображаться объекты на которые дан доступ по реквизиту. и кому на эти объекты дан доступ?
что-то у меня не получается...


Примерно так

pragma pl_sql(true);
type main is
select u(
u.username : ID_
,u.[Type] : Gr_Type
,u.name : name
,u.username : username
,o.class_id : class_
,c1.name : class_name
,o.obj_id : obj_id
,o.right_class_id : in_class
,c2.name : in_class_name
,::[USER].[Z2246788343].get_name1(o.class_id,o.obj_id) : o_name_1
,::[USER].[Z2246788343].get_name2(o.class_id,o.obj_id) : o_name_2
,::[USER].[Z2246788343].get_date(o.class_id,o.obj_id) : o_date
) in Users%rowtype, (object_rights_ex%Rowtype:o), (Classes%Rowtype:c1), (Classes%Rowtype:c2)
where o.subj_id = u.username
and c1.id = o.class_id
and c2.id = o.right_class_id
;

=====================================
где ::[USER].[Z2246788343]

s_id Number;
s_name1 Varchar2(4000);
s_name2 Varchar2(4000);
s_date Date;
------------------------------------------------------
procedure check_item(cl Varchar2, it Number) is
ac ref [AC_FIN];
co ref [CL_ORG];
cp ref [CL_PART];
dp ref [DEPART];
ft ref [FAMILY_TYPE];
sx ref [SEX];
br ref [BRANCH];
begin
if it != s_id or s_id is null then
begin
if cl = 'AC_FIN' then
locate exact ac in ::[AC_FIN] where ac%id = it;
s_name1 := ac.[NAME];
s_name2 := ac.[MAIN_V_ID];
s_date := ac.[DATE_OP];
elsif cl = 'CL_ORG' then
locate exact co in ::[CL_ORG] where co%id = it;
s_name1 := co.[NAME];
s_name2 := co.[INN];
s_date := co.[DATE_OP];
elsif cl = 'CL_PART' then
locate exact cp in ::[CL_PART] where cp%id = it;
s_name1 := cp.[NAME];
s_name2 := cp.[CODE];
s_date := cp.[DATE_OP];
elsif cl = 'DEPART' then
locate exact dp in ::[DEPART] where dp%id = it;
s_name1 := dp.[NAME];
s_name2 := dp.[CODE];
s_date := null;
elsif cl = 'FAMILY_TYPE' then
locate exact ft in ::[FAMILY_TYPE] where ft%id = it;
s_name1 := ft.[VALUE];
s_name2 := ft.[CODE];
s_date := null;
elsif cl = 'SEX' then
locate exact sx in ::[SEX] where sx%id = it;
s_name1 := sx.[VALUE];
s_name2 := sx.[CODE];
s_date := null;
elsif cl = 'BRANCH' then
locate exact br in ::[BRANCH] where br%id = it;
s_name1 := br.[SHORTLABEL];
s_name2 := br.[CODE];
s_date := null;
else
s_name1 := 'Класс не анализируется';
s_name2 := null;
s_date := null;
end if;
exception when others then s_name1 := null; s_name2 := 'Удален'; s_date := null;
end;
s_id := it;
end if;
end;
-------------------------------------------------------
function get_name1(cl Varchar2, it Number) Return Varchar2 is
begin
check_item(cl, it);
return s_name1;
end;
-------------------------------------------------------
function get_name2(cl Varchar2, it Number) Return Varchar2 is
begin
check_item(cl, it);
return s_name2;
end;
-------------------------------------------------------
function get_date(cl Varchar2, it Number) Return Date is
begin
check_item(cl, it);
return s_date;
end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа и журналирование Часовой пояс: GMT + 3
Страница 1 из 1

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