09 июля 2009

Скрипты по правам

Если вдруг кому интересно, скрипт раздачи прав на доступ пользователя или группы ко всем формам папки(и подпапок).

declare
l_folder_name varchar2(100) := 'folder_name';
l_user_name varchar2(100) := 'user_or_group_name';
l_user_id number;
l_access_level number := 3; -- 1 - read access;
-- 3 - write access
begin
select object_id into l_user_id from hsp_object where object_name = l_user_name;
for i in (select object_id
from (select *
from hsp_object
start with object_name = l_folder_name
connect by prior object_id = parent_id)
where object_type = 7) loop -- 7 - forms
begin
insert into hsp_access_control (object_id, user_id, access_mode, flags) values (i.object_id, l_user_id, l_access_level, 0);
exception when dup_val_on_index then null;
end;
end loop;
exception when no_data_found then
raise_application_error(-20000, 'User or group '''||l_user_name||''' not found.');
end;

2 комментария:

  1. Спасибо, очень выручило для переноса прав между похожими приложениями!!!! Эх, еще бы и измерения можно было так просто переносить....

    ОтветитьУдалить
  2. Думается, что и с направлениями ничего сложного нет. Надо только с флагами разобраться.

    ОтветитьУдалить