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плюсовое | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |