Select из таблицы в условии перехода
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Guest_SPb Участник со стажем
Вступление в Клуб: 27.02.2014
|
Пн Янв 15, 2018 17:32  Select из таблицы в условии перехода |
|
Полезность: Нет оценки
|
Добрый день, коллеги!
Есть представление, в котором у одной из колонок прописано условие перехода:
ID in (select a.OBJ_ID from IBS.Z#МОЯ_ТАБЛИЦА a where ...)
Для IBS это представление работает отлично.
Но если с ним начинает рабатать обычный пользователь, то он получает сообщение об ошибке:
ORA-00942: таблица или представление пользователя не существует
SELECT /*+ FIRST_ROWS(1) */ ID, CLASS_ID, C_1, C_2, C_3, ... FROM $$$.VW_CRIT_... where (ID in (select a.OBJ_ID from IBS.Z#МОЯ_ТАБЛИЦА a where ...))
И хотя пользователю через АРМ "Администратор доступа" даны права на класс "МОЯ_ТАБЛИЦА", он не получает прав на выполнение SELECT'а из этой таблицы. Из-за чего и возникает эта ошибка.
Кто-нибудь решал такую проблему? Если ДА, то каким образом?
Я нашёл решение, которое мне не очень нравится: в классе МОЯ_ТАБЛИЦА создать представление для отчёта VW_RPT_МОЯ_ТАБЛИЦА со всеми колонками этого класса, дать на это представление доступ и переписать для колоноки условие перехода:
ID in (select a.OBJ_ID from IBS.VW_RPT_МОЯ_ТАБЛИЦА where ...)
Такой вариант работает и для обычного пользователя. Но как-то не хочется для каждого класса, в который задаём подобное условие перехода, создавать представление для такого SELECT'а. |
|
 |
svn Профи
Вступление в Клуб: 04.02.2008
|
Пн Янв 15, 2018 18:54   |
|
Полезность: Нет оценки
|
выдайте гранды на таблицу роли IBS_USER
и лучше обращаться не напрямую к таблице а к синониму
или перепешите представлеине на plплюсовое |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|