PERSONNEL
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Пт Окт 23, 2015 17:20  PERSONNEL |
|
Полезность: Нет оценки
|
Добрый день всем, может у кого была такая тема у пользователя есть представление Полный список в типе Персональный состав органов управления, но записи ему не видны там. Из под доступа админского все видно, смотрел представление, доступ по реквизиту не проверяется, в тексте представления тоже толком ничего, где еще рыть: |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пт Окт 23, 2015 18:56   |
|
Полезность: Нет оценки
|
Попробуй зайти в VW_CRIT_PERSONNEL_ALL и принудительно перекомпилировать, нажав кнопку "Компилировать", не редки случаи когда это прокатывает... |
|
 |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Пт Окт 23, 2015 19:23   |
|
Полезность: Нет оценки
|
Да, тоже вначале так и подумал перекомпилил, но нет все равно также, печалька( |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пт Окт 23, 2015 19:27   |
|
Полезность: Нет оценки
|
Pupil пишет: | Да, тоже вначале так и подумал перекомпилил, но нет все равно также, печалька( |
Тогда 90 к 10 что доступ... Туда копай...
Там вьюха то пустая... нет условий никаких
Забираю свои слова назад...условия всё таки есть)))
Код: |
/* Реальный текст */
SELECT
A1_1.Id ID, 'PERSONNEL' Class_Id, A1_1.COLLECTION_ID Collection_Id,
A2_1.C_NAME C_1, A1_1.C_CLIENT REF1,
A3_1.C_VALUE C_2, A1_1.C_CASTA REF2,
A1_1.COLLECTION_ID U_1
FROM Z#PERSONNEL A1_1,
Z#CASTA A3_1,
Z#CLIENT A2_1
WHERE A1_1.C_CASTA = A3_1.ID(+)
AND A1_1.C_CLIENT = A2_1.ID(+)
AND
( SYS_CONTEXT('IBS_SYSTEM','ADMIN')='1' OR EXISTS
(
SELECT 1 FROM Criteria_Rights M_R, Subj_Equal SE
WHERE M_R.Obj_Id ='298485326'
AND M_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
)
AND
( A1_1.COLLECTION_ID IS NULL AND EXISTS
(
SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
WHERE C_R.Obj_Id='PERSONNEL' AND C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
)
OR
A1_1.COLLECTION_ID IS NOT NULL AND EXISTS
(
SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
WHERE C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER') AND C_R.Obj_Id=
( SELECT C2O.Class_Id FROM VW_C2O_PERSONNEL C2O WHERE C2O.Id = A1_1.COLLECTION_ID )
)
)
)
AND SYS_CONTEXT('IBS_OPTIONS','298485326') is null
AND SYS_CONTEXT('USERENV', 'CLIENT_IDENTIFIER') is null
|
Я бы на твоем месте сделал бы копию полного списка
...далее последовательно из запроса вырезал бы куски
Код: | SYS_CONTEXT('IBS_SYSTEM','ADMIN')='1' OR EXISTS
(
SELECT 1 FROM Criteria_Rights M_R, Subj_Equal SE
WHERE M_R.Obj_Id ='298485326'
AND M_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
)
|
Код: | AND
( A1_1.COLLECTION_ID IS NULL AND EXISTS
(
SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
WHERE C_R.Obj_Id='PERSONNEL' AND C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
)
OR
|
Код: | A1_1.COLLECTION_ID IS NOT NULL AND EXISTS
(
SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
WHERE C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER') AND C_R.Obj_Id=
( SELECT C2O.Class_Id FROM VW_C2O_PERSONNEL C2O WHERE C2O.Id = A1_1.COLLECTION_ID )
)
)
|
и смотрел бы под обычным пользователем...появилось что то или нет... так можно было бы локализовать условие, по которому не попадают записи...
А дальше... думать какую "наку" настроить, чтобы место не блокировало гармоничный ход событий... как то так... |
|
 |
nairka1973 Участник
Вступление в Клуб: 22.11.2012
|
Пн Окт 26, 2015 10:03   |
|
Полезность: Нет оценки
|
Доступ на массив OPER_CONTROL есть? |
|
 |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Пн Окт 26, 2015 10:29   |
|
Полезность: Нет оценки
|
nairka1973 пишет: | Доступ на массив OPER_CONTROL есть? |
Есть, а в Personnel нет |
|
 |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Вт Окт 27, 2015 19:19   |
|
Полезность: Нет оценки
|
Матвеев Евгений, а поясни какими кусками из реального текста в условие на PL+?, или каким образом. Можешь пример привести. |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Вт Окт 27, 2015 21:18   |
|
Полезность: Нет оценки
|
Pupil пишет: | Матвеев Евгений, а поясни какими кусками из реального текста в условие на PL+?, или каким образом. Можешь пример привести. |
Ну да, ты ж можешь запустить данный SQL запрос без переделок в PL/SQL Developer, это первое... это работает, и результат есть.... но это под IBS
Я так понимаю тебя интересует доступ под конечными пользователями...
Как вариант ... нужно будет пользователей туда пустить(точнее разрешить заходить под developer под пользователем на схему)... Не самое красивое решение
Второе... и как мне кажется более полезное... используя приведенную ниже конструкцию можно запустить под требуемым пользователем различные варианты искомого запроса... смотри мой предыдущий пост...
Код: |
declare
sSql varchar2(2000);
sValue varchar2(32767) default null;
begin
sSql := 'select ' || x.c_data || ' from ibs.'||x.c_tbl||' where id = :1';
execute immediate sSql into sValue using this%id;
debug_pipe('::['||substr(x.c_tbl,3)||'].['||substr(x.c_col,3) ||'] = '||sValue,0);
end;
|
Всё понятно?)
Как то вот так должно быть... только с полями возвращаемыми разберись
Код: |
begin
declare
sSql varchar2(2000);
sValue varchar2(32767) default null;
begin
sSql := ' SELECT
A1_1.Id ID, A1_1.Id Class_Id, A1_1.COLLECTION_ID Collection_Id,
A2_1.C_NAME C_1, A1_1.C_CLIENT REF1,
A3_1.C_VALUE C_2, A1_1.C_CASTA REF2,
A1_1.COLLECTION_ID U_1
FROM Z#PERSONNEL A1_1,
Z#CASTA A3_1,
Z#CLIENT A2_1
WHERE A1_1.C_CASTA = A3_1.ID(+)
AND A1_1.C_CLIENT = A2_1.ID(+)
';
execute immediate sSql;
end;
end;
|
|
|
 |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Ср Окт 28, 2015 10:54   |
|
Полезность: Нет оценки
|
Убрали на представление доступ к типу, поставили "нет"и о чудо ))
помогло.
Только я немного не понял. Что имеется ввиду зайти в Developer под пользователем и запустить запросы под пользователем. |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Ср Окт 28, 2015 11:09   |
|
Полезность: Нет оценки
|
Pupil пишет: | Убрали на представление доступ к типу, поставили "нет"и о чудо ))
помогло.
Только я немного не понял. Что имеется ввиду зайти в Developer под пользователем и запустить запросы под пользователем. |
Ну было понятно что в доступе
Про Developer ... клиент Oracle, для подключения нужно ввести логин и пароль
Бизнесу доступ туда точно не нужен, но в совсем безвыходных случаях ... на тесте можно поиграться, грантануть права на вход и смотреть что видно пользователю, потом постепенно накидывать права и снова смотреть...как то так |
|
 |
nairka1973 Участник
Вступление в Клуб: 22.11.2012
|
Ср Окт 28, 2015 12:04   |
|
Полезность: Нет оценки
|
Можно было не убирать на представлении "доступ к типу", а просто дать доступ к типу Personnel |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Ср Окт 28, 2015 12:07   |
|
Полезность: Нет оценки
|
nairka1973 пишет: | Можно было не убирать на представлении "доступ к типу", а просто дать доступ к типу Personnel |
Вы работаете в одном банке? ))) вроде ЦФТ написано... |
|
 |
nairka1973 Участник
Вступление в Клуб: 22.11.2012
|
Ср Окт 28, 2015 12:24   |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | nairka1973 пишет: | Можно было не убирать на представлении "доступ к типу", а просто дать доступ к типу Personnel |
Вы работаете в одном банке? ))) вроде ЦФТ написано... |
А к чему вопрос? ))) |
|
 |
Pupil Участник - экстремал
Вступление в Клуб: 27.02.2014
|
Ср Окт 28, 2015 12:28   |
|
Полезность: Нет оценки
|
Нет nairka1973,проверяли не подходит, только проверка доступа нет |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Ср Окт 28, 2015 12:37   |
|
Полезность: Нет оценки
|
nairka1973 пишет: | Матвеев Евгений пишет: | nairka1973 пишет: | Можно было не убирать на представлении "доступ к типу", а просто дать доступ к типу Personnel |
Вы работаете в одном банке? ))) вроде ЦФТ написано... |
А к чему вопрос? ))) |
...Вроде проблема описана Pupil, схема на которой это происходит тоже у него, пользователи с правами, которые что то там не видят в PERSONNEL тоже у него...
...Вы так уверенно пишете что можно было не убирать на представлении "доступ к типу" а просто дать доступ к типу Personnel
...Как будто вы работаете с одной схемой и в одном банке))) |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|